Вы можете сжать файлы tempdb mdf / ldf, используя команды DBCC shrinkfile, shrinkdatabase.
use tempdb
go
dbcc shrinkfile (tempdev, 'target size in MB')
go
dbcc shrinkfile (templog, 'target size in MB')
go
Написание кода эффективным способом может избежать роста базы данных tempdb. Избегайте использования «курсоров» в вашем коде, которые являются основными убийцами производительности, и чем больше набор данных курсора, тем больше размер базы данных tempdb. Избегайте использования временных таблиц, когда это не обязательно. использование #temptable, ## temptable для всей области, когда оно не требуется, снова вызовет проблемы с производительностью.
В SQL 2005/2008 есть CTE, в которых вы можете запрашивать данные во временной таблице, а область действия - всего одна строка после этого.
;With CTETable as
(
SELECT <Columnlist> FROM <TableName> {Joins} WHERE <Condition> GROUP BY <Column List> ORDER BY <COlumn> ASC
)
SELECT ColumnList from CTETABLE
....
Statements
Область действия этой таблицы CTEtable истекает после строки «SELECT ColumnList from CTETABLE». Таким образом, это более эффективно. Написание эффективных запросов также поможет.