igormin
Дата: 12.09.2006 08:40:25
Подскажите, что можно сделать.
Запрос, который заполняет таблицу и выводит результат, если в одном из правил она заполнятся то все ниже правила не выполняются.
if (Условие)
begin
(правило 1)
end
if count=0 (результат из правило 1 )
begin
(правило 2)
end
if count=0 (результат из правило 2)
begin
(правило 3)
end
if count=0 (результат из правило 3)
begin
(правило 4)
end
Выполняется около 18 сек, хотя выполняется только по первому правилу.
Кодга убираешь с 2-4 правило, просто комментируешь, то выполняется 2 сек.
Как буд-то SQL заходит в остольные правила.
tpg
Дата: 12.09.2006 08:48:08
igormin |
Как буд-то SQL заходит в остольные правила. |
Он не заходит в остальные правила, а при компиляции строит планы для всех веток, игнорирую выражения IF, как будто их вовсе нет в тексте - у вас львинная доля времени уходит на перекомпиляцию.
Чтобы избежать этого или уменьшить влияние компиляции остальных выражений можно попробовать оформит их в виде отдельных ХП и вызывать в соответствующих местах.