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

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

Что именно вы подразумеваете под "сканированием" (Table scan ?)
Ну и конечно, что за запрос у вас выполнятся в триггере ?
...
Рейтинг: 0 / 0
20.05.2002, 15:12
    #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
21.05.2002, 05:59
    #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
21.05.2002, 08:19
    #32030769
VVG_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
производительность триггеров
Скорее всего это еще один глюк QA (в копилку его), потому что трассировка выдает практически мгновенное выполнение запроса.

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

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


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