Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Тормозит табличка  [new]
BERSERC
Member

Откуда:
Сообщений: 442
Есть табличка, в ней есть много данных.

UPDATE 1 строки в ней по ключу занимает в первый раз 16 секунд, далее по 0.
(если очистить план с ппомощью DBCC FREEPROCCACHE) то опять таки получаем UPDATE на 16 секунд. SELECT всегда 0. Триггеров, чеков нет.

Если сделать SELECT * INTO TABLE1 FROM TABLE
потом сделать такойже первичный ключ на TABLE1(как на TABLE), то все запросы всегда выполняются по 0 секунд. (ИЗ TABLE1)

В реальных условиях(на живом а не тестовом сервере) на таблице висит много триггеров и операция по переименованию таблиц достаточно напряжная.

С чем может быть связана такая ситуация?

(UPDATE других таблиц, подобного размера, хоть с очисткой плана хоть без тоже всегда 0)
29 июн 09, 13:11    [7354376]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит табличка  [new]
BERSERC
Member

Откуда:
Сообщений: 442
Кажись разобрался, я сделал в начале всех триггеров return, однако триггера всравно компилировались. Походу все время тратится на компитяцию какого-то триггера.
29 июн 09, 13:16    [7354401]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит табличка  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36824
Имхо, 16 секунд у вас вычитываются данные с диска. Всеми остальными манипуляциями типа SELECT * вы просто в кеш вычитываете всю таблицу.

Это, конечно, если мы всякие блокировки и неожиданности с разными планами исключили.
29 июн 09, 13:19    [7354412]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит табличка  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
Вообще общий подход для понимания причины тормозов запроса: начинаем с анализа планов выполнения, а дальше смотрим если оптимальны значит наверное железо, если неоптимальны - оптимизируем
29 июн 09, 14:49    [7354889]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит табличка  [new]
BERSERC
Member

Откуда:
Сообщений: 442
плвны оптимальны и одинаковы, однако с проблемой доконца не разобрался.

Если отключить триггеры , тупем удаления, то все летает, если просо сделать в начале каждлого триггера return то опять 16 секунд.

Можно посчитать, что время тратится на компиляцию "нерабочих" триггеров, однако я посмотрел, на таблицах где аналогичные триггеры (по размеру и соедрданию) , запрос на обновление 1 строки всегда выполянтся 0 секунд(размер таблицы аналогичный)
29 июн 09, 14:58    [7354940]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит табличка  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31219
BERSERC
Можно посчитать, что время тратится на компиляцию "нерабочих" триггеров, однако я посмотрел, на таблицах где аналогичные триггеры (по размеру и соедрданию) , запрос на обновление 1 строки всегда выполянтся 0 секунд(размер таблицы аналогичный)
На компиляцию.

Посмотрите в профайлере, на каком именно триггере задержка. И на каком операторе.

Может, там обращение к линкед-серверу, какой-нибуть openrowset, например
29 июн 09, 15:44    [7355247]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить