powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / производительность триггеров
5 сообщений из 5, страница 1 из 1
производительность триггеров
    #32030653
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заглянул тут в один Execution Plan и обнаружил загадочный факт - сканирование таблиц inserted и deleted происходит оччень продолжительное время (до 99% от всего батча), что мне совсем не понравилось.

Вопрос - так действительно происходит или это глюк QA? Если первое, то можно ли с таким бороться?
...
Рейтинг: 0 / 0
производительность триггеров
    #32030671
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сканирование таблиц inserted и deleted происходит оччень продолжительное время (до 99% от всего батча), что мне совсем не понравилось.

Что именно вы подразумеваете под "сканированием" (Table scan ?)
Ну и конечно, что за запрос у вас выполнятся в триггере ?
...
Рейтинг: 0 / 0
производительность триггеров
    #32030676
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Триггер примерно такой:

create trigger T_SomeTrigger ON dbo.SomeMasterTable for update, delete
as
delete from SomeSlaveTable
where ID in (select ID from deleted)
and not ID in (select ID from inserted where Status>0)

Базы порядка 50-70 тысяч записей.

План такой:

Deleted Scan - 49% (~0.5 сек)
Inserted Scan - 49% (~0.5 сек)
Clustered Index Delete - 1%

Сервер - Microsoft SQL Server 2000 - 8.00.534 (Intel X86) Enterprise Edition on Windows NT 5.0 (Build 2195: )
...
Рейтинг: 0 / 0
производительность триггеров
    #32030722
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если не использовать IN?

напишите как-нибудь так:

create trigger T_SomeTrigger ON dbo.SomeMasterTable for update, delete
as
delete s
from SomeSlaveTable s, deleted d
where s.ID=d.ID and not exists(select * from inserted i where Status>0 and d.ID=s.ID)
...
Рейтинг: 0 / 0
производительность триггеров
    #32030769
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего это еще один глюк QA (в копилку его), потому что трассировка выдает практически мгновенное выполнение запроса.

2SergSuper: с IN'ами все точно также

Ладно, вопрос закрыт. Спасибо всем.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / производительность триггеров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]