Безопасно ли сокращать tempdb.mdf в MS SQL Server?

Хей,

мой TEMPDB.mdf вырос до 42 ГБ на MS SQL Server 2005, установленном на Windows Server 2003.

Последнее изменение даты - 31.01.2013 ночью.

Итак, мне интересно, нормально ли это сжимать?

2 ответа

Я рекомендую прочитать статью technet "Работа с tempdb в SQL Server 2005". Я не рекомендую пытаться сжать базу данных tempdb, так как она используется в основном как чистая база данных для хранения промежуточных результатов запросов, среди прочего, во время работы SQL, и операция сжатия, вероятно, даже не будет работать на базе данных tempdb. Способ временного уменьшения размера базы данных tempdb - это не операция сжатия. Просто перезапустите сервер SQL - SQL удалит базу данных tempdb и скопирует базу данных модели для создания новой базы данных tempdb. Это единственный метод, который я бы использовал, чтобы временно вернуть tempdb под контроль, если на диске есть проблема.

Если tempdb постоянно увеличивается до этого размера, то у вас есть процесс (или процессы) БД, который одновременно работает с большим количеством данных в базе данных tempdb, вызывая его рост. Если это так, то единственный способ не допустить его роста в будущем - это определить, что это за процесс, и изменить их. Если этот рост является разовым предложением, которого вы раньше не видели, вы, вероятно, можете просто перезапустить SQL-сервер и не беспокоиться об этом снова, но если он продолжает достигать такого размера, и вы не можете определить, почему или измените ваши внутренние запросы и хранимые процедуры, чтобы они не использовали tempdb так много, тогда вам, вероятно, следует просто установить размер tempdb чуть больше 42 ГБ, чтобы уменьшить фрагментацию, вызванную автострадом.

Также прочитайте "Как уменьшить базу данных tempdb в SQL Server". Это подробно описывает 3 способа сделать это. Вы можете выполнить 2 из 3, не перезапуская сервер SQL, но они оба не требуют активности в базе данных tempdb, что довольно сложно получить на работающем сервере SQL.

Вы также можете посмотреть на ваши запросы и перекодировать их, чтобы они не оказывали влияния на базу данных tempdb.

Другие вопросы по тегам