Sql-Server-2005

SQL Server 2005 TempDB 維護

  • August 30, 2010

我正在使用 SQL Server 2005 數據庫,該數據庫在 TempDB 的 1 個文件組中有 8 個文件。第一個文件的初始大小為 8MB,其他 7 個為 2GB。該數據庫是一個報告數據庫,每晚從 SSIS 包中填充。包和報告使用了很多臨時表。

這些文件已經增長到大約 300GB,分佈均勻。它將不受限制地增長 200MB。TempDB 未備份且位於 SAN 上。

我讀過你不應該在 TempDB 上使用 SHRINKDATABASE 或 SHRINKFILE。在這種情況下執行維護的正確方法是什麼,以確保我們不會最大化磁碟空間並保持 TempDB 精簡和平均。

感謝您的任何建議和知識。

這是來自 Microsoft的文章307487關於這一點。

它歸結為幾個基本方法:

  1. 重啟 SQL 實例
  2. 使用 DBCC SHRINKDATABASE
  3. 使用 DBCC SHRINKFILE

正如您所知,所有這些都有自己的問題,但我不確定有什麼方法可以巧妙地執行此任務,因為您實際上是在處理實例中最重要的數據庫之一。如果您有能力關閉實例幾分鐘,那將是我認為的最佳選擇。

請記住,如果您的 tempdb 一開始就變得這麼大,那麼它很有可能會再次出現。如果這是一個主要問題,您應該調查 tempdb 增長如此之大的原因並做出相應的計劃。人們對收縮操作感到不滿的主要原因是因為數據庫往往會增長到需要的大小,除非做錯了什麼。它可能不適用於您,但這只是我針對有關數據庫收縮的任何問題給出的一般免責聲明。

引用自:https://serverfault.com/questions/176188