Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Неправильный план выполнения запроса / 4 сообщений из 4, страница 1 из 1
09.03.2019, 21:57
    #39784171
Андрей_7777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильный план выполнения запроса
Доброе время суток!

Есть процедура, в которой выполняется некий запрос(select), в условии которого используются переменные привязки данной процедуры. Во время выполнения этой процедуры план выполнения данного запроса, вычисленный для текущих переменных привязок, отправляется в кэш.

Далее,

Первый вариант. Процедура выполняется повторно уже с другими параметрами, но при этом подтягивается из кэша старый план, который не оптимален в данном случае, что приводит к очень долгому выполнению запроса.
Как сделать так, чтобы не подтягивался план выполнения запроса, вычисленный для других переменных привязок?
Вижу вариант с execute immediate и динамическим запросом. Но не хотелось бы его использовать т.к. в данной реализации компиляция процедуры не покажет ошибок в данном запросе, которые возможны, например, в случае изменения структуры таблиц запроса.
Можно ли отправить в кэш план выполнения данного запроса без переменных привязок (подставить константы), не используя execute immediate?

Второй вариант. Процедура выполняется повторно с теми же самыми параметрами, но содержимое таблиц запроса существенно поменялось, в следствие чего план выполнения запроса, вычисленный ранее, приведет к очень долгому выполнению запроса. Но этот план опять же подтянется из кэша.
Как сделать так, чтобы в этом случае не подтягивался план выполнения запроса, вычисленный ранее?
Может как-то можно пометить данный запрос? Может хинт какой-то есть?
...
Рейтинг: 0 / 0
09.03.2019, 22:59
    #39784186
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильный план выполнения запроса
Андрей_7777с другими параметрамидва, три, ... статических запросов с соответствующим набору параметров планом.

Андрей_7777содержимое таблиц запроса существенно поменялосьЗафиксировать план, удовлетворяющий ограничениям по времени отклика при любом составе данных.
...
Рейтинг: 0 / 0
10.03.2019, 10:00
    #39784233
Андрей_7777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильный план выполнения запроса
-2-, Спасибо

-2-Андрей_7777с другими параметрамидва, три, ... статических запросов с соответствующим набору параметров планом.
А все-таки как-то можно сделать так, чтобы в план запроса попадали не переменные привязки вида ":B1", а конкретные их значения (без использования execute immediate)? Может хинты какие есть или параметр сессии?

-2-Андрей_7777содержимое таблиц запроса существенно поменялосьЗафиксировать план, удовлетворяющий ограничениям по времени отклика при любом составе данных.
Спасибо, изучил материал, но по моему в моей ситуации это слишком сложно, попробую обойтись хинтами.
...
Рейтинг: 0 / 0
10.03.2019, 11:44
    #39784243
bubuk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильный план выполнения запроса
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Неправильный план выполнения запроса / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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