|
Where - jчередность
|
|||
---|---|---|---|
#18+
Бьюсь как "рыба об лёд" вторые сутки ( Оказывается: Код: sql 1.
я по наивности предполагала, что условия будет проверяться в указанной мною последовательности, но выполняется сначала функция - c пустым параметром XX не взирая, что Lg=.F. и поле ХХ пустое. Может кто подскажет как мне "порядка добиться" Заранее благодарю! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 00:24 |
|
Where - jчередность
|
|||
---|---|---|---|
#18+
Если не путаю, последовательность выполнения заявлена для условий типа IF, SCAN и т.п. Для SQL запросов работает оптимизатор и он может поменять порядок проверки чтобы задействовать индексы. 1. Попробуй так Код: sql 1.
2. Продублировать проверку в FFunction() Код: sql 1.
и в начало FFunction Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 11:07 |
|
Where - jчередность
|
|||
---|---|---|---|
#18+
Людмila Бьюсь как "рыба об лёд" вторые сутки ( Оказывается: Код: sql 1.
я по наивности предполагала, что условия будет проверяться в указанной мною последовательности, но выполняется сначала функция - c пустым параметром XX не взирая, что Lg=.F. и поле ХХ пустое. Может кто подскажет как мне "порядка добиться" Заранее благодарю! Собственно, вы сами ответили на вопрос, если поля Lg and ХХ пустые, то оптимизатор для них может выбрать только поиск сканируя таблицу (для больших таблиц - это самый медленный вариант), у оптимизатора остаётся только один неизвестный предикат - это FFunction(XX), вот он (оптимизатор) пытается его сначала вычислить, что бы уменьшить количество отбираемых записей и применить сканирование для оставшейся части записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 17:41 |
|
|
start [/forum/topic.php?fid=41&fpage=5&tid=1581586]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
114ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 310ms |
total: | 508ms |
0 / 0 |