powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Про bind peeking
25 сообщений из 107, страница 1 из 5
Про bind peeking
    #39559782
туплю_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
11gR2
Почему иногда оптимизатор тупо берет готовый план (сгенерированный изначально для bind совсем другого диапазона), не желая строить заново. Если же при пустом sql-кэше(когда нет для запроса готового плана в sga) задать эти же значения, то строит нормальный план.
Есть гистограммы, по которым однозначно можно видеть, что плохой план для таких значений bind не подходит. (очень неравномерное распределение).
Причины и чем можно бороться (помимо baselines-ов) -?
...
Рейтинг: 0 / 0
Про bind peeking
    #39559786
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
туплю_,

может для экономии сил и времени, не?
...
Рейтинг: 0 / 0
Про bind peeking
    #39559788
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AFAIR, в 11g peeking выполнялся только при построении плана.
А план строился только если не имелось готового.
Как следствие, если первый вызов шел с неудачным значением bind - то остальные вызовы того же SQL работали неэффективно.
Отсюда и легендарный способ борьбы с этим пагубным явлением:
Код: plsql
1.
comment on table <таблица из запроса> is 'FAST=TRUE... or something like this'
...
Рейтинг: 0 / 0
Про bind peeking
    #39559789
опс.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DВАможет для экономии сил и времени, не?
а как же adaptive cursor и проч. ?
...
Рейтинг: 0 / 0
Про bind peeking
    #39559790
опс.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asc может не работать, если в запросе есть хинты. также может не работать, вроде если используется like и некот.другие операторы.
Тогда что первое попалось, то и будет жевать.
Один из вариантов лечения - запулить хинт BIND_AWARE
...
Рейтинг: 0 / 0
Про bind peeking
    #39559792
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
опс.DВАможет для экономии сил и времени, не?
а как же adaptive cursor и проч. ?оно только с третьего выполнения начинает работать, да и то как мы знаем не всегда
...
Рейтинг: 0 / 0
Про bind peeking
    #39559793
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
andrey_anonymousAFAIR, в 11g peeking выполнялся только при построении плана.afair, bind peeking появился в 10ке
...
Рейтинг: 0 / 0
Про bind peeking
    #39559795
туплю_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xtenderоно только с третьего выполнения начинает работать, да и то как мы знаем не всегда
не всегда - это при каких ситуациях ?
...
Рейтинг: 0 / 0
Про bind peeking
    #39559797
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опс.DВАможет для экономии сил и времени, не?
а как же adaptive cursor и проч. ?
не сильно удачная попытка найти золотую серединку между необходимостью лишний раз парсить и риском подхватить не оптимальный план
...
Рейтинг: 0 / 0
Про bind peeking
    #39559799
туплю_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
опс....также может не работать, вроде если используется like и некот.другие операторы.
т.е. если используется like, то единственный выход - искать один усредненный план, относительно подходящий для всех ситуаций и фиксить его через baselines ?
...
Рейтинг: 0 / 0
Про bind peeking
    #39559825
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderandrey_anonymousAFAIR, в 11g peeking выполнялся только при построении плана.afair, bind peeking появился в 10ке 700067

Oracle9i Database Performance Tuning Guide and Reference
Release 2 (9.2)
Peeking of User-Defined Bind Variables
...
Рейтинг: 0 / 0
Про bind peeking
    #39559834
туплю_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic, что вы скажете по самой этой ситуации - как вы поступаете ?

Получается, что нужны два разных плана, но adaptive не срабатывает, как понимаю из-за использования like
...
Рейтинг: 0 / 0
Про bind peeking
    #39559839
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
туплю_Elic, что вы скажете по самой этой ситуации - как вы поступаете ?Не парюсь. В adhoc запросах 100%-го счастья всё равно не бывает. А штатные запросы просто не должны зависеть от такой фигни.
...
Рейтинг: 0 / 0
Про bind peeking
    #39559885
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
туплю_,

к сожалению, в большинстве случаев это означает, что разработчики неправильно понимают советы по использованию биндов. Очень распространена ошибка, когда делают запросы типа:
select * from tab where type=:type ..., при том что заранее знают, что значений TYPE очень ограниченное количество и по ним будет большой перекос. В таких случаях просто вместо бинда надо использовал литерал
...
Рейтинг: 0 / 0
Про bind peeking
    #39559893
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderВ таких случаях просто вместо бинда надо использовал литералЛитералы - несопровождаемое зло.
...
Рейтинг: 0 / 0
Про bind peeking
    #39559897
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ElicЛитералы - несопровождаемое зло.бред.
...
Рейтинг: 0 / 0
Про bind peeking
    #39559907
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderElicЛитералы - несопровождаемое зло.бред.Взаимно. Как и антогонизм "разработчик vs админ".
...
Рейтинг: 0 / 0
Про bind peeking
    #39559913
туплю_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как и антогонизм "разработчик vs админ".

Вот и что делать админу в данной ситуации, как принудительно заставить adaptive к конкретным запросам цеплять? )
...
Рейтинг: 0 / 0
Про bind peeking
    #39559917
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
туплю_,
подобрать и закрепить компромисный план, пригодный для любого диапазона.

ну или ждать окончательной эволюции оптимайзера в самообучающийся искусственный интеллект )))
...
Рейтинг: 0 / 0
Про bind peeking
    #39561093
fortnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderElicЛитералы - несопровождаемое зло.бред.

Присоединюсь.
Пришлось даже написать код по замене параметров на их значения перед выполнением ( отчеты ) .
...
Рейтинг: 0 / 0
Про bind peeking
    #39561139
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortnetxtenderпропущено...
бред.Присоединюсь.И тем не менее, у меня разработчик будет получать пенделей за такое в PL/SQL :
Код: plsql
1.
where account_type = 100500
...
Рейтинг: 0 / 0
Про bind peeking
    #39561196
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виталий, а за такое?

Код: plsql
1.
where account_type = pkg_const.ACC_TYPE_VIP
...
Рейтинг: 0 / 0
Про bind peeking
    #39561201
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
envВиталий, а за такое?

Код: plsql
1.
where account_type = pkg_const.ACC_TYPE_VIP

Код: plsql
1.
where account_type = pkg_const.ACC_100500
...
Рейтинг: 0 / 0
Про bind peeking
    #39561207
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
Код: plsql
1.
where account_type = pkg_const.ACC_TYPE_VIP

+
AmKad
Код: plsql
1.
where account_type = pkg_const.ACC_100500

-
...
Рейтинг: 0 / 0
Про bind peeking
    #39561234
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,
pkg_const.ACC_TYPE_VIP функция или константа?
и если константа как тестировать сложный запрос в котором штук 50 этих констант и где то в запросе есть ошибка? каждый раз руками сидеть заменять константы на литералы прежде чем приступить к тестированию?

xtender,
+ константы на моей памяти в проекте редко меняются. хотя может и есть извращенцы.
...
Рейтинг: 0 / 0
25 сообщений из 107, страница 1 из 5
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Про bind peeking
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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