Tempdb сервера (SQL Server 2008) увеличивается до 500 ГБ + несколько раз в месяц. Можно ли узнать, какие операторы SQL вызвали эту проблему? Проблема, как правило, не вызвана create table #temp...; insert into #temp...
или select ... into #temp...
сложна.
Исходный размер некоторых TempDb файлов также автоматически устанавливается в гораздо больших значений каждый раз. Как это предотвратить?
Иногда кэшированные планы препятствуют изменению размеров / сжатию файлов. Как найти, кто из них держит tempdb?
sql-server
sql-server-2008
tempdb
u23432534
источник
источник
Ответы:
Для отслеживания использования базы данных tempdb можно использовать три DMV:
Первые два позволят вам отслеживать распределение на уровне запросов и сеансов. Третий отслеживает распределение по хранилищу версий, пользовательским и внутренним объектам.
Следующий пример запроса даст вам распределение за сеанс:
Если вы хотите отслеживать использование в течение определенного периода времени, рассмотрите возможность сбора данных с помощью sp_whoisactive , как продемонстрировал Кендра Литтл .
источник
[SPACE Allocated FOR USER Objects (in KB)]
и[SPACE Deallocated FOR USER Objects (in KB)]
фактическая занимаемая площадь сеанса?Могут быть различные источники проблемы:
SORT_IN_TEMPDB = ON
источник