|
Неправильный план выполнения запроса
|
|||
---|---|---|---|
#18+
Доброе время суток! Есть процедура, в которой выполняется некий запрос(select), в условии которого используются переменные привязки данной процедуры. Во время выполнения этой процедуры план выполнения данного запроса, вычисленный для текущих переменных привязок, отправляется в кэш. Далее, Первый вариант. Процедура выполняется повторно уже с другими параметрами, но при этом подтягивается из кэша старый план, который не оптимален в данном случае, что приводит к очень долгому выполнению запроса. Как сделать так, чтобы не подтягивался план выполнения запроса, вычисленный для других переменных привязок? Вижу вариант с execute immediate и динамическим запросом. Но не хотелось бы его использовать т.к. в данной реализации компиляция процедуры не покажет ошибок в данном запросе, которые возможны, например, в случае изменения структуры таблиц запроса. Можно ли отправить в кэш план выполнения данного запроса без переменных привязок (подставить константы), не используя execute immediate? Второй вариант. Процедура выполняется повторно с теми же самыми параметрами, но содержимое таблиц запроса существенно поменялось, в следствие чего план выполнения запроса, вычисленный ранее, приведет к очень долгому выполнению запроса. Но этот план опять же подтянется из кэша. Как сделать так, чтобы в этом случае не подтягивался план выполнения запроса, вычисленный ранее? Может как-то можно пометить данный запрос? Может хинт какой-то есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2019, 21:57 |
|
Неправильный план выполнения запроса
|
|||
---|---|---|---|
#18+
Андрей_7777с другими параметрамидва, три, ... статических запросов с соответствующим набору параметров планом. Андрей_7777содержимое таблиц запроса существенно поменялосьЗафиксировать план, удовлетворяющий ограничениям по времени отклика при любом составе данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2019, 22:59 |
|
Неправильный план выполнения запроса
|
|||
---|---|---|---|
#18+
-2-, Спасибо -2-Андрей_7777с другими параметрамидва, три, ... статических запросов с соответствующим набору параметров планом. А все-таки как-то можно сделать так, чтобы в план запроса попадали не переменные привязки вида ":B1", а конкретные их значения (без использования execute immediate)? Может хинты какие есть или параметр сессии? -2-Андрей_7777содержимое таблиц запроса существенно поменялосьЗафиксировать план, удовлетворяющий ограничениям по времени отклика при любом составе данных. Спасибо, изучил материал, но по моему в моей ситуации это слишком сложно, попробую обойтись хинтами. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2019, 10:00 |
|
Неправильный план выполнения запроса
|
|||
---|---|---|---|
#18+
Андрей_7777, Если руки помыл, то попробуй почитать это: https://blogs.sap.com/2013/06/13/oracle-db-optimizer-part-vi-effects-of-disabled-bind-variable-peeking-adaptive-cursor-sharing-and-cardinality-feedback-on-the-cbo-in-sap-environments/ ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2019, 11:44 |
|
|
start [/forum/topic.php?fid=52&fpage=82&tid=1882724]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 279ms |
total: | 403ms |
0 / 0 |