|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko> это не окончательный вариант, там ещё логика на гео координаты и языки будет. Всё равно, эти танцы с Name, PostalCode и Null лишние. И вообще в коде > if (I_POSTAL_CODE is not null and (Trim(I_POSTAL_CODE) = '')) then > I_POSTAL_CODE = null; первая проверка лишняя. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 12:22 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
dimitrMikhail Tchervonenkoа если с I_NAME передать строку 'Техт%' то по Вашему это другой запрос? для оптимизатора - другой Есть в планах в 4-ке научить, как c (... or :param is null) делать вариативный план? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 13:58 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
afgmЕсть в планах в 4-ке научить, как c (... or :param is null) делать вариативный план? в тройке это УЖЕ ЕСТЬ. я же приводил пример - 20904144 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 14:06 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
afgm, а, понял. про Like :param и like 'text%' ? Не знаю, может и можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 14:07 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
kdvafgm, а, понял. про Like :param и like 'text%' ? Не знаю, может и можно. да, с like заработавший с STARTING WITH код работать перестаёт. Кстати, как кто выкручивается если переменная в запросе должна учавствовать только если её значение не null? Ситуация то довольно частая. в 2.5 прокатывало что то вроде (:PEREM is nill or (Field STARTING WITH :PEREM), и план работал нормально. В 3 ке, по крайней мере в этом примере план убивается. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 14:20 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
kdv> а, понял. про Like :param и like 'text%' ? Не знаю, может и можно. Не, он не про подстроку, он именно про "is null or". Я точно помню, что то ли трекер, то ли ДЕ говорил, что это то ли уже есть в тройке, то ли будет в 4-ке. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 14:27 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko> в 2.5 ... и план работал нормально. Ну здрасьте... Как раз не работал нормально, индекс не юзался. > В 3 ке, по крайней мере в этом примере план убивается. Что-то неочевидно. Ты хоть бы планы привёл что ли... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 14:32 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkoкак кто выкручивается если переменная в запросе должна учавствовать только если её значение не null? а ведь папаша Дейт говорил, что null - зло. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 14:34 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамMikhail Tchervonenko> в 2.5 ... и план работал нормально. Ну здрасьте... Как раз не работал нормально, индекс не юзался. > В 3 ке, по крайней мере в этом примере план убивается. Что-то неочевидно. Ты хоть бы планы привёл что ли... ну в 2.5 по крайней мере нигде не столкнулся с проблемой производителяности на таких запросах (равно как и не использования подходявых индексов) А планы в случае внешних запросов я привёл выше. В случае запросов встроенных в процедуру, к стыду, признаюсь незнаю как выташить планы. IBExpert может для запросов из процедуры? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 15:21 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
kdvMikhail Tchervonenkoкак кто выкручивается если переменная в запросе должна учавствовать только если её значение не null? а ведь папаша Дейт говорил, что null - зло. ну в этом случае null для пустой строки. Нужно для маски где поиск производится по нескольким полям. Если поле не заполнено по нему поиск не производится. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 15:24 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko> ну в 2.5 по крайней мере нигде не столкнулся с ... не использования подходявых индексов) Странный ты человек... Ну возьми создай табличку с одним полем и сравни два запроса - select * from test where (name starting with :param) и select * from test where (:param is null) or (name starting with :param) И планы их сравни. > А планы в случае внешних запросов я привёл выше. Щас увидел. Но там всё равно ничего не очевидно. Давно бы уже выкинул всё лишнее и привёл нормальный пример. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 15:38 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
kdvafgm, а, понял. про Like :param и like 'text%' ? Не знаю, может и можно. Именно про такой случай. Вообще интересно, от таких выкрутасов в большом количестве оптимизатор не сойдёт с ума? Сейчас пока только два вида таких разветвлений, и в голову пока не приходит ничего подобного. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 16:06 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамMikhail Tchervonenko> ну в 2.5 по крайней мере нигде не столкнулся с ... не использования подходявых индексов) Странный ты человек... Ну возьми создай табличку с одним полем и сравни два запроса - select * from test where (name starting with :param) и select * from test where (:param is null) or (name starting with :param) И планы их сравни. > А планы в случае внешних запросов я привёл выше. Щас увидел. Но там всё равно ничего не очевидно. Давно бы уже выкинул всё лишнее и привёл нормальный пример. меня от этого остановило незнание как инициализировать значение :param вне процедуры (в sql editor IBExpert) хотя сейчас запустил с :param без определения и инициализации param и ошибку не получил, сразу начался запрос. Не пойму, почему FB не выдал ошибку, откуда взялся этот param если я его не описывал и не инициализировал? Или это уже IBExpert подшаманил? Или param это ключевое слово о котором я незнаю? Где туплю? разрыв шаблона какой то ... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 16:14 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkoменя от этого остановило незнание как инициализировать значение :param вне процедуры (в sql editor IBExpert) хотя сейчас запустил с :param без определения и инициализации param и ошибку не получил, сразу начался запрос. Не пойму, почему FB не выдал ошибку, откуда взялся этот param если я его не описывал и не инициализировал? Или это уже IBExpert подшаманил? Или param это ключевое слово о котором я незнаю? Где туплю? разрыв шаблона какой то ... :) Ты какие-то ужасные ужасы говоришь и спрашиваешь. Жмёшь Ф9, появляется окно со списком параметров, вводишь значения (или ставишь галочку Null), жмёшь кнопку Enter. Всё. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 16:41 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
Или что ты путаешься спросить? Как определяется тип параметра? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 16:42 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамИли что ты путаешься спросить? Как определяется тип параметра? где? в окне SQL Editor у IBExpress? Так там F9 это запуск на выполнение. А как определить параметр в процедуре я знаю и сам. Речь то о запросе выполняемом вне процедуры в окошке SQL Editor у IBExpert. План я вижу только в нём. Можно конечно и дедовским способом в isql или как он там зовётся, но там тоже как то надо этот параметр описать. Или мы говорим всё время о разном? например о окошке Procedure, тут F9 определяет параметры. Или в окошке Procedure можно запустить кусок кода и увидеть его план? Чем дальше в лес тем больше дров получается :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 16:57 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 17:07 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
потому и спросил, откуда взялась эта переменнаь :PARAM если её нигде не определял. И почему запрос начал выполняться. По идее должен бал ругнуться типа неизвестная колонка PARAM или что то в этом роде ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 17:12 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko> в окне SQL Editor у IBExpress? Так там F9 это запуск на выполнение. Правильно. После чего появляется окошко для ввода значений параметров. Или у тебя не появляется? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 17:13 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
Чёрт... Второй фейспалм за день... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 17:15 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамMikhail Tchervonenko> в окне SQL Editor у IBExpress? Так там F9 это запуск на выполнение. Правильно. После чего появляется окошко для ввода значений параметров. Или у тебя не появляется? нет, не появляется запрос выполняется как будто всё ок ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 17:24 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
И что возвращает ? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 17:27 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
Тьфу, ну ты фраер. У тебя же параметр нигде не задействован. Вообще. Хотя и в этом случае должно появляться окно с запросом значения или ошибка о неизвестном типе параметра. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 17:30 |
|
FB3 Разная работа оптимизатора одного и того же запроса в процедуре и вне её
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, блин, ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 17:32 |
|
|
start [/forum/topic.php?fid=40&msg=39552412&tid=1561340]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 321ms |
total: | 483ms |
0 / 0 |