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

Откуда:
Сообщений: 1
Здравствуйте дорогие участники этого форума, у меня сложилась такая проблема:

Имеется запрос, который вставляет в таблицу один раз в день около 40000 строк. Таблица в которую вставляются данные имеет один clustered index (a,b) с двумя ключами, а также 30 nonclustered indexes. Все бы ничего, да вот как день назад при выполнении этой операции стало происходить переполнение tempdb (около 30GB), хотя до этого кушала ресурс только в 400mb, в следствии чего не возможно выполнение данной операции. Процедура ни кем не изменялась - работала и через 2 года вдруг перестала. Но что самое интересное у нас в наличии 3 сервера и на 2х она работает как обычно (8 минут), а на главном сервере вечно. Жесткий диск на котором находится tempdb емкостью в 100GB, под tempdb выделено 30GB, кроме tempdb там ничего нет. Проверяли жесткий диск никаких badов не нашли.
Проанализировав процедуру выяснили, что если удалить clustered index и вставлять без него то работает как обычно, но если таблица имеет clustered index, то просто перегружает tempdb.
20 янв 12, 03:02    [11936626]     Ответить | Цитировать Сообщить модератору
 Re: При Insert Clustered Index идет переполнение tempdb  [new]
Кудряшка
Member

Откуда: Сидней
Сообщений: 2219
Execution Plan запроса вставки данных на проблемном сервере покажите.
Да и для сравнения план того же запроса на непроблемном было бы неплохо.
20 янв 12, 03:44    [11936637]     Ответить | Цитировать Сообщить модератору
 Re: При Insert Clustered Index идет переполнение tempdb  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
Вставляйте более маленькими порциями, по 1000 записей.
У вас наверняка в плане идет секуенс и тайбл спул.
20 янв 12, 09:36    [11936922]     Ответить | Цитировать Сообщить модератору
 Re: При Insert Clustered Index идет переполнение tempdb  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Эта таблица для чего используется,какие запросы,какой размер ее?
На остальных серверах есть кластерный ключ или нет?
30 некластерных индексов на таблице это реальная жестЪ,надеюсь она используется для OLAP.
При вставке в кластерный индекс явно идет деление страниц и обслуживание всех индексов соответственно отсюда нагрузка на tempdb.
Если явно ограничен максимальный размер tempdb,то это явно не удачная идея.
20 янв 12, 10:51    [11937289]     Ответить | Цитировать Сообщить модератору
 Re: При Insert Clustered Index идет переполнение tempdb  [new]
1d0
Member

Откуда: инфа100%
Сообщений: 2521
индекс перестраивается при вставке, и при этом промежуточные результаты проходт через темп дб?
20 янв 12, 17:48    [11941758]     Ответить | Цитировать Сообщить модератору
 Re: При Insert Clustered Index идет переполнение tempdb  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
1d0
индекс перестраивается при вставке, и при этом промежуточные результаты проходт через темп дб?
Только при больших объёмах, когда сортировка не влезает в память.

Может быть, у вас возрос объём данных и требуемая память возрасла...
20 янв 12, 18:31    [11942180]     Ответить | Цитировать Сообщить модератору
 Re: При Insert Clustered Index идет переполнение tempdb  [new]
Crimean
Member

Откуда:
Сообщений: 13147
снапшоты не используется? хотя бы в виде RCSI?
20 янв 12, 22:01    [11943121]     Ответить | Цитировать Сообщить модератору
 Re: При Insert Clustered Index идет переполнение tempdb  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
alexeyvg
1d0
индекс перестраивается при вставке, и при этом промежуточные результаты проходт через темп дб?
Только при больших объёмах, когда сортировка не влезает в память.

Может быть, у вас возрос объём данных и требуемая память возрасла...


Или когда сервер делает неправильные предположения о количестве строк и соответственно об объемах данных.

Статистику давно обновляли? Сколько данных ожидается на входе в sort оператор? Смотрите также дефолтный трейс на предмет Hash/Sort warnings.
Или делайте, как уже было предложено - частями.
21 янв 12, 01:05    [11943949]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить