Sql-Server

正確設置 tempdb 以避免可用空間發生重大變化

  • July 13, 2009

每隔兩到三天,我們就會收到以下 SCOM 錯誤:

電腦sqlserver上的 SQL 實例 MSSQLSERVER 中的數據庫 tempdb 的 可用空間發生了顯著變化

這種情況自安裝 SharePoint 2007 SP2 以來一直在發生,並且發生在半夜,可能是在 SharePoint 執行搜尋索引任務時。

目前 tempdb 的大小為 313.88 MB,可用空間為 49.72 MB。我被告知警報的門檻值是 45%。我們使用的是 SQL Server 2005 64 位。

如何解決此問題,是否應以不同方式配置 tempdb?我在這個上扮演了一個意外的 DBA!謝謝…

一個快速的解決方案是使 tempdb 足夠大以避免波動。

  • 將臨時數據庫的大小調整為 1GB 數據、500 MB 日誌(或 2GB/1GB)
  • 停止 SQL Server
  • 刪除 tempdb LDF 和 LDF 文件
  • 重新啟動 SQL Server

不用太深,磁碟空間很便宜,擁有更大的 tempdb 也沒有什麼壞處。

隨著數據的增長,您也將開始使用更多的 tempdb。

此解決方案將有助於避免物理文件碎片和自動文件增長問題。

tempdb 用於很多事情,僅舉幾例:

  • Tempdb 表、表變數
  • 雜湊匹配
  • 排序操作
  • 行版本
  • DBCC CHECKDB
  • 重建索引,如果使用了 SORT_IN_TEMPDB 選項

預計可用空間會發生變化,您可以相應地調整 tempdb 的大小,使其至少具有繞過警報可能需要的最大值的兩倍。我也會保留自動增長以防萬一,您不希望處於 tempdb 空間不足的情況。

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