|
Явное указание плана для UPDATE OR INSERT, MERGE
|
|||
---|---|---|---|
#18+
Тут любопытный вопрос возник - https://stackoverflow.com/questions/44881453/how-to-use-plan-with-update-or-insert-into Явного указания Плана для Update-or-insert или например для Merge С одной стороны, для вариативных над-команд, где в результате проверки условия (существования) идёт ветвление в разные "подпрограммы" - казалось бы смысла задавать план нету, пока в синтакс этого плана не добавят ветвление и под-планы для под-запросов. С одной стороны. C другой стороны, сделана же поддержка плана в "чистых" delete и update, а ведь там же по зависимостям (триггера, FK, вьюхи) может тоже вылезти множественный план. Нц что-нибудь типа "update ... where x is not in (select ...)" - у вложенного подзапроса свой план вроде будет. Но это не мешает первичный "верхнего уровня" план задавать руками и прибивтаь гвоздиком. По идее почему бы план первичного сопоставления данных в u-or-i и merge тоже не разрешить задавaть явно ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2017, 12:22 |
|
Явное указание плана для UPDATE OR INSERT, MERGE
|
|||
---|---|---|---|
#18+
Arioch, ИХМО от явных планов стоит отказать вообще. Хинты наше всё, если без них не обойтись. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2017, 12:31 |
|
Явное указание плана для UPDATE OR INSERT, MERGE
|
|||
---|---|---|---|
#18+
Симонов Денис, Хинты на отключение индекса (i+0) есть, хинтов на обязательное включение - нет, покрайней мере в 2.5 Кстати, это еще вопрос как лучше для диагностических целей, с хинтами или все же с явным заданием плана. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2017, 12:48 |
|
Явное указание плана для UPDATE OR INSERT, MERGE
|
|||
---|---|---|---|
#18+
Arioch, я говорю о нормальных нативных хинтах, которых увы нет. +0 это хитрый трюк для обмана оптимизатора, а не хинт. План для части запроса это уже не совсем план, как раз для этих целей лучше подходят хинты. А вообще планы для большого запроса довольно затруднительно написать, и не для любого запроса они могут быть написаны. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2017, 13:08 |
|
Явное указание плана для UPDATE OR INSERT, MERGE
|
|||
---|---|---|---|
#18+
Симонов Денис, дело вкуса мне сама идея комментария, который внезапно вмешивается в работу программы, да ещё и нестандартным образом, для каждого сервера по разному, кажется очень сомнительной. ну например, если я FB-шный запрос с планом запущу на SQLite или MS SQL, он мне скажет, что я придурок syntax error а вот если я в комментах FB-шные хинты всуну и пролопоушу это на другой движок - то хз как отработает, непредсказуемость, в худшем случае вообще проинтерпретирует как-нибудь по-своему, половинчато ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2017, 13:19 |
|
Явное указание плана для UPDATE OR INSERT, MERGE
|
|||
---|---|---|---|
#18+
Arioch, с чего ты взял что хинты будут реализовывать как комментарий? Почитай мысли по этому поводу http://firebird.1100200.n4.nabble.com/Some-aspects-of-the-optimizer-hints-td4634812.html ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2017, 14:45 |
|
|
start [/forum/topic.php?fid=40&fpage=43&tid=1561509]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 148ms |
0 / 0 |