Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Разный план для одного запроса  [new]
ыудусе
Member

Откуда: Владик
Сообщений: 126
Всем, бодрого времени суток.

Голова видимо сломалась и не могу понять, почему план выполнения одного и того же запроса в одной и той же сессии разный для статичного(т.е. просто select blah...) и динамического (Execute immediate) выполнения?

Причем во втором случае сваливается в full scan много гигабайтной таблицы. Сейчас собираю заново по ней статистику - может быть поможет.
8 дек 10, 07:32    [9902629]     Ответить | Цитировать Сообщить модератору
 Re: Разный план для одного запроса  [new]
Valergrad
Member

Откуда:
Сообщений: 703
В Toade есть инструмент сравнения планов, например.
А вообще, ткнув в магический шар, могу предположить что в связываемых переменных дело.
Селективность, которую рассчитывает оптимизатор, для связываемой переменной и для явно заданной константы - разная, что может повлиять на план выполнения.
8 дек 10, 10:00    [9903000]     Ответить | Цитировать Сообщить модератору
 Re: Разный план для одного запроса  [new]
ыудусе
Member

Откуда: Владик
Сообщений: 126
Valergrad
В Toade есть инструмент сравнения планов, например.
А вообще, ткнув в магический шар, могу предположить что в связываемых переменных дело.
Селективность, которую рассчитывает оптимизатор, для связываемой переменной и для явно заданной константы - разная, что может повлиять на план выполнения.


Вопрос не в сравнении планов и не в связываемых переменных. Они не используются.

Мне непонятно, почему для одного и того же select'а, не использующего связываемые переменные, разные планы выполнения при "динамике" и "статике".
8 дек 10, 10:26    [9903153]     Ответить | Цитировать Сообщить модератору
 Re: Разный план для одного запроса  [new]
ыудусе
Member

Откуда: Владик
Сообщений: 126
Dynamic sample = 2
CURSOR_SHARING = EXACT

В какую сторону копать - не понятно:(
8 дек 10, 10:35    [9903212]     Ответить | Цитировать Сообщить модератору
 Re: Разный план для одного запроса  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18337
ыудусе
В какую сторону копать - не понятно:(

10053?
8 дек 10, 10:37    [9903233]     Ответить | Цитировать Сообщить модератору
 Re: Разный план для одного запроса  [new]
брадобрей
Member

Откуда:
Сообщений: 4696
найди запрос в v$sql и затем покажи нам
select * from v$sql_shared_cursor where sql_id = :sql_id
8 дек 10, 10:50    [9903307]     Ответить | Цитировать Сообщить модератору
 Re: Разный план для одного запроса  [new]
ыудусе
Member

Откуда: Владик
Сообщений: 126
брадобрей,

SQL_ID        ADDRESS          CHILD_ADDRESS    CHILD_NUMBER           UNBOUND_CURSOR SQL_TYPE_MISMATCH OPTIMIZER_MISMATCH OUTLINE_MISMATCH STATS_ROW_MISMATCH LITERAL_MISMATCH SEC_DEPTH_MISMATCH EXPLAIN_PLAN_CURSOR BUFFERED_DML_MISMATCH PDML_ENV_MISMATCH INST_DRTLD_MISMATCH SLAVE_QC_MISMATCH TYPECHECK_MISMATCH AUTH_CHECK_MISMATCH BIND_MISMATCH DESCRIBE_MISMATCH LANGUAGE_MISMATCH TRANSLATION_MISMATCH ROW_LEVEL_SEC_MISMATCH INSUFF_PRIVS INSUFF_PRIVS_REM REMOTE_TRANS_MISMATCH LOGMINER_SESSION_MISMATCH INCOMP_LTRL_MISMATCH OVERLAP_TIME_MISMATCH SQL_REDIRECT_MISMATCH MV_QUERY_GEN_MISMATCH USER_BIND_PEEK_MISMATCH TYPCHK_DEP_MISMATCH NO_TRIGGER_MISMATCH FLASHBACK_CURSOR ANYDATA_TRANSFORMATION INCOMPLETE_CURSOR TOP_LEVEL_RPI_CURSOR DIFFERENT_LONG_LENGTH LOGICAL_STANDBY_APPLY DIFF_CALL_DURN BIND_UACS_DIFF PLSQL_CMP_SWITCHS_DIFF CURSOR_PARTS_MISMATCH STB_OBJECT_MISMATCH ROW_SHIP_MISMATCH PQ_SLAVE_MISMATCH TOP_LEVEL_DDL_MISMATCH MULTI_PX_MISMATCH BIND_PEEKED_PQ_MISMATCH MV_REWRITE_MISMATCH ROLL_INVALID_MISMATCH OPTIMIZER_MODE_MISMATCH PX_MISMATCH MV_STALEOBJ_MISMATCH FLASHBACK_TABLE_MISMATCH LITREP_COMP_MISMATCH 
------------- ---------------- ---------------- ---------------------- -------------- ----------------- ------------------ ---------------- ------------------ ---------------- ------------------ ------------------- --------------------- ----------------- ------------------- ----------------- ------------------ ------------------- ------------- ----------------- ----------------- -------------------- ---------------------- ------------ ---------------- --------------------- ------------------------- -------------------- --------------------- --------------------- --------------------- ----------------------- ------------------- ------------------- ---------------- ---------------------- ----------------- -------------------- --------------------- --------------------- -------------- -------------- ---------------------- --------------------- ------------------- ----------------- ----------------- ---------------------- ----------------- ----------------------- ------------------- --------------------- ----------------------- ----------- -------------------- ------------------------ -------------------- 
12033jn2uw95y 00000000B826CCE8 00000000B863EE08 0                      N              N                 N                  N                N                  N                N                  N                   N                     N                 N                   N                 N                  N                   N             N                 N                 N                    N                      N            N                N                     N                         N                    N                     N                     N                     N                       N                   N                   N                N                      N                 N                    N                     N                     N              N              N                      N                     N                   N                 N                 N                      N                 N                       N                   N                     N                       N           N                    N                        N                    

1 rows selected


8 дек 10, 11:57    [9903863]     Ответить | Цитировать Сообщить модератору
 Re: Разный план для одного запроса  [new]
ыудусе
Member

Откуда: Владик
Сообщений: 126
andrey_anonymous
ыудусе
В какую сторону копать - не понятно:(

10053?


Спасибо, завтра попробую.
8 дек 10, 11:58    [9903874]     Ответить | Цитировать Сообщить модератору
 Re: Разный план для одного запроса  [new]
брадобрей
Member

Откуда:
Сообщений: 4696
ыудусе
брадобрей,

SQL_ID        ADDRESS          CHILD_ADDRESS    CHILD_NUMBER           UNBOUND_CURSOR SQL_TYPE_MISMATCH OPTIMIZER_MISMATCH OUTLINE_MISMATCH STATS_ROW_MISMATCH LITERAL_MISMATCH SEC_DEPTH_MISMATCH EXPLAIN_PLAN_CURSOR BUFFERED_DML_MISMATCH PDML_ENV_MISMATCH INST_DRTLD_MISMATCH SLAVE_QC_MISMATCH TYPECHECK_MISMATCH AUTH_CHECK_MISMATCH BIND_MISMATCH DESCRIBE_MISMATCH LANGUAGE_MISMATCH TRANSLATION_MISMATCH ROW_LEVEL_SEC_MISMATCH INSUFF_PRIVS INSUFF_PRIVS_REM REMOTE_TRANS_MISMATCH LOGMINER_SESSION_MISMATCH INCOMP_LTRL_MISMATCH OVERLAP_TIME_MISMATCH SQL_REDIRECT_MISMATCH MV_QUERY_GEN_MISMATCH USER_BIND_PEEK_MISMATCH TYPCHK_DEP_MISMATCH NO_TRIGGER_MISMATCH FLASHBACK_CURSOR ANYDATA_TRANSFORMATION INCOMPLETE_CURSOR TOP_LEVEL_RPI_CURSOR DIFFERENT_LONG_LENGTH LOGICAL_STANDBY_APPLY DIFF_CALL_DURN BIND_UACS_DIFF PLSQL_CMP_SWITCHS_DIFF CURSOR_PARTS_MISMATCH STB_OBJECT_MISMATCH ROW_SHIP_MISMATCH PQ_SLAVE_MISMATCH TOP_LEVEL_DDL_MISMATCH MULTI_PX_MISMATCH BIND_PEEKED_PQ_MISMATCH MV_REWRITE_MISMATCH ROLL_INVALID_MISMATCH OPTIMIZER_MODE_MISMATCH PX_MISMATCH MV_STALEOBJ_MISMATCH FLASHBACK_TABLE_MISMATCH LITREP_COMP_MISMATCH 
------------- ---------------- ---------------- ---------------------- -------------- ----------------- ------------------ ---------------- ------------------ ---------------- ------------------ ------------------- --------------------- ----------------- ------------------- ----------------- ------------------ ------------------- ------------- ----------------- ----------------- -------------------- ---------------------- ------------ ---------------- --------------------- ------------------------- -------------------- --------------------- --------------------- --------------------- ----------------------- ------------------- ------------------- ---------------- ---------------------- ----------------- -------------------- --------------------- --------------------- -------------- -------------- ---------------------- --------------------- ------------------- ----------------- ----------------- ---------------------- ----------------- ----------------------- ------------------- --------------------- ----------------------- ----------- -------------------- ------------------------ -------------------- 
12033jn2uw95y 00000000B826CCE8 00000000B863EE08 0                      N              N                 N                  N                N                  N                N                  N                   N                     N                 N                   N                 N                  N                   N             N                 N                 N                    N                      N            N                N                     N                         N                    N                     N                     N                     N                       N                   N                   N                N                      N                 N                    N                     N                     N              N              N                      N                     N                   N                 N                 N                      N                 N                       N                   N                     N                       N           N                    N                        N                    

1 rows selected



А где второй курсор?
У тебя запросы имеют разный текст.
8 дек 10, 12:06    [9903924]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить