如何在SQL Server中最佳化Tempdb

Tybyq發表於2018-11-29

SQL Server預設有四個資料庫系統,其中一個稱為tempdb。 tempdb用於許多SQL操作,包括建立使用者定義的臨時物件,內部臨時物件和版本儲存,以及其他功能,如聯機重新索引,多個活動記錄集(MARS)等。 最佳化伺服器的臨時資料庫是提高伺服器效能的最佳方法之一。 繼續閱讀以瞭解有關如何在SQL Server中最佳化tempdb的一些要點。

需要注意的一個事實是每個人都在使用相同tempdb的例項共享;  您不能在SQL Server例項中擁有多個,但您可以獲得有關使用DMV在tempdb中執行的操作的詳細資訊。

tempdb的功能和屬性:

    • Tempdb始終設定為簡單恢復模式,這意味著已提交事務的事務日誌記錄在每個檢查點之後都標記為可重用。

    • Tempdb只能有一個檔案組,不能新增更多。

    • Tempdb可以儲存三種型別的物件:使用者物件,內部物件和版本儲存。

如何在SQL Server中最佳化Tempdb

注意tempdb似乎很明顯。 但是怎麼樣? 我總結了一些規則:

1. 每次重新啟動後都會重建tempdb,從而為tempdb提供足夠大的初始大小。

2. 由於經常訪問tempdb並將tempdb外包給另一個驅動器是加速訪問的一個很好的措施。

用於移動tempdb檔案的指令碼。

ALTER DATABASE tempdb

修改檔案(NAME = tempdev,FILENAME =,E:DATAtempdb.mdf');

ALTER DATABASE tempdb

修改檔案(NAME = templog,FILENAME =,E:Datatemplog.ldf');

3.   始終為tempdb提供足夠的容量。 讓它自動增長。 

4. 將恢復模式設定為“簡單”。 並非所有內容都記錄在事務日誌中,這意味著當事務完成時它將從事務日誌中刪除。 因此,日誌檔案不會繼續不必要地增長。

5. 可以最佳化建立附加資料檔案以訪問資料載體,因為可以避免這種儲存衝突。 有一個pi *拇指規則:CPU數量等於檔案數量。 這改善了對資料載體的訪問。

6. 如果您使用多個指定相同檔案大小的檔案。 這有利於檔案的比例填充。

7. 禁用自動更新以提高SQL資料庫中臨時資料的效能。

結論

必須更加關注tempdb,尤其是在SQL Server 2005下。無論是想要備份tempdb,刪除tempdb,資料庫映象還是透過檔案集進行最佳化,都無法幫助您最佳化SQL資料庫。

我希望這提供了一些有用和快速的點來最佳化SQL Server中的tempdb。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31557424/viewspace-2222152/,如需轉載,請註明出處,否則將追究法律責任。

相關文章