Долгое выполнение запроса

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 заходит в остольные правила.
-=DiM@n=-
Дата: 12.09.2006 08:45:57
А что такое
count=0

Обычно переменные обозначаются через @count.
Кстати, если эти переменные содержат число записей, взвращаемых в условиях, то можно пользоваться @@ROWCOUNT.
tpg
Дата: 12.09.2006 08:48:08
igormin
Как буд-то SQL заходит в остольные правила.
Он не заходит в остальные правила, а при компиляции строит планы для всех веток, игнорирую выражения IF, как будто их вовсе нет в тексте - у вас львинная доля времени уходит на перекомпиляцию.
Чтобы избежать этого или уменьшить влияние компиляции остальных выражений можно попробовать оформит их в виде отдельных ХП и вызывать в соответствующих местах.
Crimean
Дата: 12.09.2006 10:37:46
покажи весь текст
иначе делов не будет