|
Порядок выполнения условий where
|
|||
---|---|---|---|
#18+
Добрый день! FB 2.5 WI-V6.3.2.26540 Имеем Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Выполняю запрос успешно Код: sql 1. 2. 3. 4. 5.
А вот этот дает ошибку - conversion error from string " " Код: sql 1. 2. 3. 4. 5. 6.
Почему? (параметр CompleteBooleanEvaluation = 0 дефолтный в конфиге) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 16:27 |
|
Порядок выполнения условий where
|
|||
---|---|---|---|
#18+
если не ошибаюсь, разбор идёт справа-налево Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 16:37 |
|
Порядок выполнения условий where
|
|||
---|---|---|---|
#18+
Ок. заменил так, работает Код: sql 1. 2. 3. 4. 5. 6.
Почему тогда отрабатывает первый запрос, если справа-налево? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 16:45 |
|
Порядок выполнения условий where
|
|||
---|---|---|---|
#18+
Так что это, баг? Объясните плиз... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 17:51 |
|
Порядок выполнения условий where
|
|||
---|---|---|---|
#18+
Hello, H E.l.p! You wrote on 25 апреля 2016 г. 17:55:47: H E.l.pОбъясните плиз..у тебя сперва выполняется лефт джойн, а уж потом на это всё накладываются условия фильтрации Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 17:56 |
|
Порядок выполнения условий where
|
|||
---|---|---|---|
#18+
Да ради Бога, пусть джойнится. Там условие джойна не по полю T.FIELD1. Потом фильтрация - почему в нем ошибка выходит потому что условие справа-налево? Если я сделаю для этого запроса так, то будет та же ошибка, а по идее справа-налево?... Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 18:03 |
|
Порядок выполнения условий where
|
|||
---|---|---|---|
#18+
Порядок вычисления выражений в условии WHERE в общем случае не определён. Оптимизатор имеет право перераспределить их по своему усмотрению. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 18:24 |
|
Порядок выполнения условий where
|
|||
---|---|---|---|
#18+
Ну и как его заставить вычислять как мне нужно? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 20:40 |
|
Порядок выполнения условий where
|
|||
---|---|---|---|
#18+
H.e.l.pНу и как его заставить вычислять как мне нужно? Регэксп выкинь. Проверку на NULL выкинь. 470415 заключи в одинарные кавычки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 21:01 |
|
Порядок выполнения условий where
|
|||
---|---|---|---|
#18+
H.e.l.p, а не надо полагаться на порядок вычисления в SQL. Это декларативный язык ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 21:10 |
|
Порядок выполнения условий where
|
|||
---|---|---|---|
#18+
H.e.l.p, заверни проверку в stored procedure и вычисляй там в любом порядке как захочется ....заодно получи просмотр таблицы натуралом, потому что SP для оптимизатора будет чёрным ящиком к индексам не применимым. и вообще - надо было снаала планы к запросам показать ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2016, 14:38 |
|
Порядок выполнения условий where
|
|||
---|---|---|---|
#18+
H.e.l.pНу и как его заставить вычислять как мне нужно? можно засунуть все проверки в один CASE, но тогда нужно будет забыть об индексах. Зато порядок вычисления предикатов будет определен однозначно... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2016, 05:45 |
|
Порядок выполнения условий where
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6.
План PLAN JOIN (T NATURAL, T1 NATURAL) Чем это тебе поможет? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2016, 13:25 |
|
Порядок выполнения условий where
|
|||
---|---|---|---|
#18+
H.e.l.p Код: sql 1.
тут понятно, что натурал, а я говорил пр "сначала" и "планЫ" к "запросАМ" сравнивая планы было бы понятно почему оптимизатор посчитал разные ветви where более многообещающими в разных случаях и соответсвенно запускал в разном порядке ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2016, 14:21 |
|
Порядок выполнения условий where
|
|||
---|---|---|---|
#18+
H.e.l.pНу и как его заставить вычислять как мне нужно? Код: sql 1. 2. 3.
===> Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2016, 14:29 |
|
|
start [/forum/topic.php?fid=40&msg=39227178&tid=1562172]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 159ms |
0 / 0 |