Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 MSSQL7.0. Триггера: Запрос с использованием Inserted, Deleted или курсор?!!?  [new]
MixaCh
Guest
Добрый день всем!!!

В последнее время вплотную столкнулся со следующей проблемой:
"Тяжелая" вставка (изменение, удаление) записей в таблицы при возрастании объема данных...

Сначала пытался "ковырять" индексы, триггера (добавлять условия) и пр...

Однажды было время - переписал в триггере запрос типа:
    if exists (Select ... from inserted (deleted)....)

на
    Declare c_cur cursor for

select ... from inserted (deleted)....
...
If @var = ....

Через Query Analyzer - чуть не обалдел - стоимость запросов упала на порядки!!!!!

Что это - баг, или некорректность в плане запроса или еще что...
Просто не хотелось бы переписывать все запросы на курсоры - труд грандиозный....

Может быть я чего не понимаю или не знаю, может есть какой либо generate statistic или еще какая приблуда?!?!?

Заранее спасибо за ответы....
2 фев 03, 14:39    [119930]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL7.0. Триггера: Запрос с использованием Inserted, Deleted или курсор?!!?  [new]
Firestarter
Guest
почитай про курсоры однонаправленные.
DECLARE Grants_Cur CURSOR FORWARD_ONLY STATIC READ_ONLY
FOR
SELECT .......
это однонаправленный курсор - работает быстро.
у самого в триггерах такие есть
но с ним осторожно
11 фев 03, 15:52    [126535]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить