powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Явное указание плана для UPDATE OR INSERT, MERGE
6 сообщений из 6, страница 1 из 1
Явное указание плана для UPDATE OR INSERT, MERGE
    #39481643
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут любопытный вопрос возник - 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ть явно ?
...
Рейтинг: 0 / 0
Явное указание плана для UPDATE OR INSERT, MERGE
    #39481654
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

ИХМО от явных планов стоит отказать вообще. Хинты наше всё, если без них не обойтись.
...
Рейтинг: 0 / 0
Явное указание плана для UPDATE OR INSERT, MERGE
    #39481678
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Хинты на отключение индекса (i+0) есть, хинтов на обязательное включение - нет, покрайней мере в 2.5

Кстати, это еще вопрос как лучше для диагностических целей, с хинтами или все же с явным заданием плана.
...
Рейтинг: 0 / 0
Явное указание плана для UPDATE OR INSERT, MERGE
    #39481698
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

я говорю о нормальных нативных хинтах, которых увы нет. +0 это хитрый трюк для обмана оптимизатора, а не хинт.
План для части запроса это уже не совсем план, как раз для этих целей лучше подходят хинты.
А вообще планы для большого запроса довольно затруднительно написать, и не для любого запроса они могут быть написаны.
...
Рейтинг: 0 / 0
Явное указание плана для UPDATE OR INSERT, MERGE
    #39481710
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

дело вкуса

мне сама идея комментария, который внезапно вмешивается в работу программы, да ещё и нестандартным образом, для каждого сервера по разному, кажется очень сомнительной.

ну например, если я FB-шный запрос с планом запущу на SQLite или MS SQL, он мне скажет, что я придурок syntax error

а вот если я в комментах FB-шные хинты всуну и пролопоушу это на другой движок - то хз как отработает, непредсказуемость, в худшем случае вообще проинтерпретирует как-нибудь по-своему, половинчато
...
Рейтинг: 0 / 0
Явное указание плана для UPDATE OR INSERT, MERGE
    #39481799
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

с чего ты взял что хинты будут реализовывать как комментарий?
Почитай мысли по этому поводу http://firebird.1100200.n4.nabble.com/Some-aspects-of-the-optimizer-hints-td4634812.html
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Явное указание плана для UPDATE OR INSERT, MERGE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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