powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Оптимизация запроса
15 сообщений из 40, страница 2 из 2
Оптимизация запроса
    #39485729
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximaXXLRMagistr2015,

а это условие недокопироно?
Код: plsql
1.
    where o.copied_from#operation_id is not null


или его нет/не было вообще?
Это проверочное усовие, не обязательно, можно с ним можно буз него в рамках нашей дискуссии
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39485736
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пляски с паетом продолжаются (((
пишу вот такой код:
Код: plsql
1.
2.
3.
4.
5.
6.
declare 
  i integer;
begin
  WH$S.InOper;
  --InsertOperation
end;


Он мне говорит, что мол - Невозможно найти вызываемый блок программы WH$S.InOper!
Хотя сам пакет есть, и процедура в нем то же есть, только вот при компиляции этого пакета выходит выше обозначенное окно, что это такое и почему это происходит? (((( Пол дня уже ушатал на эту фигню ((((((((((((((((
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39485743
Фотография AlexFF__|
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015,

Права напрямую?
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39485746
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexFF__|RMagistr2015,

Права напрямую?
Что права на прямую?
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39485749
Фотография AlexFF__|
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015,

Права на выполнение WH$S даны схеме пакета напрямую, не через роль?
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39485750
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexFF__|RMagistr2015,

Права на выполнение WH$S даны схеме пакета напрямую, не через роль?
Не знаю, а как это можно посмотреть?
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39485755
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexFF__|RMagistr2015,

Права на выполнение WH$S даны схеме пакета напрямую, не через роль?
Выполнил вот такой вот запрос -
Код: plsql
1.
2.
3.
SELECT * 
       FROM dba_objects
       where lower(object_name) = lower('WH$SYNC')


Тут показывает две стоки, в одной этот объект valid, в другой invalid (((
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39485756
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015AlexFF__|RMagistr2015,

Права на выполнение WH$S даны схеме пакета напрямую, не через роль?
Выполнил вот такой вот запрос -
Код: plsql
1.
2.
3.
SELECT * 
       FROM dba_objects
       where lower(object_name) = lower('WH$SYNC')


Тут показывает две стоки, в одной этот объект valid, в другой invalid (((
Причем у этих объектов одинаковое имя, но разные ID ((((
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39485757
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015RMagistr2015пропущено...

Выполнил вот такой вот запрос -
Код: plsql
1.
2.
3.
SELECT * 
       FROM dba_objects
       where lower(object_name) = lower('WH$SYNC')


Тут показывает две стоки, в одной этот объект valid, в другой invalid (((
Причем у этих объектов одинаковое имя, но разные ID ((((
Так у него говоит тело invalid, но при компиляции выдает только окно, которое я описывал выше (((( Не понятно почему так и что это за окно, и какая там ошибка (((((
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39485765
K790
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39485767
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015и что это за окно, и какая там ошибка (((((Вот так и остаются инвалидами гуя.
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39485773
RMagistr2015при компиляции выдает только окно, которое я описывал выше (((( Не понятно почему так и что это за окно, и какая там ошибка (((((
Это окно ошибки поиска в документации описания ошибки ORA-04052.
Не надо тупо давить на "ОК" когда вылетает приглашение поискать описание кода в локальной доке, которую предварительно поленился поставить.
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39485785
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опузыреть можноRMagistr2015при компиляции выдает только окно, которое я описывал выше (((( Не понятно почему так и что это за окно, и какая там ошибка (((((
Это окно ошибки поиска в документации описания ошибки ORA-04052.
Не надо тупо давить на "ОК" когда вылетает приглашение поискать описание кода в локальной доке, которую предварительно поленился поставить.
Спасибо большое, я уже понял это, Спасибо Вам большое ))
У меня нет прав что бы её туда ставить
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39486099
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015,

Итого имеем
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
select o.operation_id,
       o.copied_from#operation_id,
       t.operation_id,
       t.copied_from#operation_id,
       o.schedule_specifier, 
       o.is_template,        
       o.operation_type_id,  
       o.status_type_id,     
       o.created,            
       case when t.is_template    = 'Y'   then 1 
            when t.status_type_id = 90    then 1 
            when (t.is_template   = 'N'
                   and t.schedule_specifier in ('O','P')) 
                                          then 2 
            when t.operation_type_id = 40 then 2 
            when t.status_type_id = 94    then 2 
         end as flag_tamplate_auto_payment
    from operation o
         left join (select ot.operation_id
                           ,ot.operation_type_id
                           ,ot.is_template
                           ,ot.schedule_specifier
                           ,ot.status_type_id
                           ,ot.copied_from#operation_id
                           from operation ot
                           where ot.is_template = 'Y'    
                           OR (ot.is_template   = 'N'
                                    and ot.schedule_specifier in ('O','P'))
                           OR ot.operation_type_id in (40,94)
                   ) t on o.copied_from#operation_id=t.operation_id



На таблицу operation o не накладываеться ни одного условия -> Full Scan
На таблицу operation ot накладываеться одно вразумительное условие o.copied_from#operation_id=t.operation_id -> Index unique scan
По факту все красиво, остальные ускорения без данных делать сложно, т.к. не очевиден выйгрыш
...
Рейтинг: 0 / 0
Оптимизация запроса
    #39486202
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximaXXLRMagistr2015,

Итого имеем
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
select o.operation_id,
       o.copied_from#operation_id,
       t.operation_id,
       t.copied_from#operation_id,
       o.schedule_specifier, 
       o.is_template,        
       o.operation_type_id,  
       o.status_type_id,     
       o.created,            
       case when t.is_template    = 'Y'   then 1 
            when t.status_type_id = 90    then 1 
            when (t.is_template   = 'N'
                   and t.schedule_specifier in ('O','P')) 
                                          then 2 
            when t.operation_type_id = 40 then 2 
            when t.status_type_id = 94    then 2 
         end as flag_tamplate_auto_payment
    from operation o
         left join (select ot.operation_id
                           ,ot.operation_type_id
                           ,ot.is_template
                           ,ot.schedule_specifier
                           ,ot.status_type_id
                           ,ot.copied_from#operation_id
                           from operation ot
                           where ot.is_template = 'Y'    
                           OR (ot.is_template   = 'N'
                                    and ot.schedule_specifier in ('O','P'))
                           OR ot.operation_type_id in (40,94)
                   ) t on o.copied_from#operation_id=t.operation_id



На таблицу operation o не накладываеться ни одного условия -> Full Scan
На таблицу operation ot накладываеться одно вразумительное условие o.copied_from#operation_id=t.operation_id -> Index unique scan
По факту все красиво, остальные ускорения без данных делать сложно, т.к. не очевиден выйгрыш

Почему только одно ВРазумительное условие? )))
И как можно анализировать данные? ))
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Оптимизация запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]