|
|
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
11gR2 Почему иногда оптимизатор тупо берет готовый план (сгенерированный изначально для bind совсем другого диапазона), не желая строить заново. Если же при пустом sql-кэше(когда нет для запроса готового плана в sga) задать эти же значения, то строит нормальный план. Есть гистограммы, по которым однозначно можно видеть, что плохой план для таких значений bind не подходит. (очень неравномерное распределение). Причины и чем можно бороться (помимо baselines-ов) -? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 08:53 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
туплю_, может для экономии сил и времени, не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:11 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
AFAIR, в 11g peeking выполнялся только при построении плана. А план строился только если не имелось готового. Как следствие, если первый вызов шел с неудачным значением bind - то остальные вызовы того же SQL работали неэффективно. Отсюда и легендарный способ борьбы с этим пагубным явлением: Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:15 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
DВАможет для экономии сил и времени, не? а как же adaptive cursor и проч. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:21 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
asc может не работать, если в запросе есть хинты. также может не работать, вроде если используется like и некот.другие операторы. Тогда что первое попалось, то и будет жевать. Один из вариантов лечения - запулить хинт BIND_AWARE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:26 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
опс.DВАможет для экономии сил и времени, не? а как же adaptive cursor и проч. ?оно только с третьего выполнения начинает работать, да и то как мы знаем не всегда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:28 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousAFAIR, в 11g peeking выполнялся только при построении плана.afair, bind peeking появился в 10ке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:29 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderоно только с третьего выполнения начинает работать, да и то как мы знаем не всегда не всегда - это при каких ситуациях ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:37 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
опс.DВАможет для экономии сил и времени, не? а как же adaptive cursor и проч. ? не сильно удачная попытка найти золотую серединку между необходимостью лишний раз парсить и риском подхватить не оптимальный план ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:39 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
опс....также может не работать, вроде если используется like и некот.другие операторы. т.е. если используется like, то единственный выход - искать один усредненный план, относительно подходящий для всех ситуаций и фиксить его через baselines ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:46 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 10:32 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elic, что вы скажете по самой этой ситуации - как вы поступаете ? Получается, что нужны два разных плана, но adaptive не срабатывает, как понимаю из-за использования like ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 10:42 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
туплю_Elic, что вы скажете по самой этой ситуации - как вы поступаете ?Не парюсь. В adhoc запросах 100%-го счастья всё равно не бывает. А штатные запросы просто не должны зависеть от такой фигни. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 10:46 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
туплю_, к сожалению, в большинстве случаев это означает, что разработчики неправильно понимают советы по использованию биндов. Очень распространена ошибка, когда делают запросы типа: select * from tab where type=:type ..., при том что заранее знают, что значений TYPE очень ограниченное количество и по ним будет большой перекос. В таких случаях просто вместо бинда надо использовал литерал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 11:41 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderВ таких случаях просто вместо бинда надо использовал литералЛитералы - несопровождаемое зло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 11:51 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
ElicЛитералы - несопровождаемое зло.бред. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 11:58 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderElicЛитералы - несопровождаемое зло.бред.Взаимно. Как и антогонизм "разработчик vs админ". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 12:14 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Как и антогонизм "разработчик vs админ". Вот и что делать админу в данной ситуации, как принудительно заставить adaptive к конкретным запросам цеплять? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 12:26 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
туплю_, подобрать и закрепить компромисный план, пригодный для любого диапазона. ну или ждать окончательной эволюции оптимайзера в самообучающийся искусственный интеллект ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 12:31 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderElicЛитералы - несопровождаемое зло.бред. Присоединюсь. Пришлось даже написать код по замене параметров на их значения перед выполнением ( отчеты ) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 10:34 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
fortnetxtenderпропущено... бред.Присоединюсь.И тем не менее, у меня разработчик будет получать пенделей за такое в PL/SQL : Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 11:40 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Виталий, а за такое? Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 12:41 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
envВиталий, а за такое? Код: plsql 1. Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 12:44 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
env Код: plsql 1. + AmKad Код: plsql 1. - ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 12:50 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elic, pkg_const.ACC_TYPE_VIP функция или константа? и если константа как тестировать сложный запрос в котором штук 50 этих констант и где то в запросе есть ошибка? каждый раз руками сидеть заменять константы на литералы прежде чем приступить к тестированию? xtender, + константы на моей памяти в проекте редко меняются. хотя может и есть извращенцы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 13:20 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=135&tid=1884826]: |
0ms |
get settings: |
7ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
82ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 401ms |

| 0 / 0 |
