(1)          TempDB的簡介:是SQL SERVER的系統資料庫之一,用來儲存暫存的物件或資料。
(2)          一些TempDB重要的特性:
1.    重新啟動SQL SERVER時,系統會重新建立TempDB,所以TempDB不需要備份和還原。
2.    TempDB不能增加檔案群組。
3.    所有連線到SQL SERVER的使用者都可以使用TEMPDB。
4.    TempDB的復原模式為簡單模式。
(3)          TempDB的儲存對象
物件  |    物件內容  |    備註  |   
User objects  |    Local   temporary tables and indexes Global temporary   tables and indexes Table   variables User-defined   tables and indexes   |    可以透過 sys.dm_db_session_space_usage查看Table  variables儲存所在,驗證Table  variables確實是存在於TempDB中的。  |   
Internal   objects  |    Sort results Hash joins XML variables Work tables   for cursors Temporary   large object (LOB) storage  |    可以透過 sys.dm_db_session_space_usage查看Internal   objects在TempDB中已配置和取消配置的頁數。  |   
Version store   objects  |    Snapshot   isolation Triggers Multiple   active result sets (MARS) Online index   build  |    可以透過sys.dm_tran_version_store查看Version store   objects的內容  |   
(4)          TempDB對資料庫效能的關聯:因為許多暫存物件(如Local temporary tables and indexes)都會使用到TempDB,所以TempDB設計的好壞會大大影響資料庫系統的效能,而要最佳化TempDB必須要朝下列幾點著手。
TempDB效能最佳化要點  |    說明  |   
TempDB復原模式  |    確認tempdb復原模式設定為簡單模式(SIMPLE)  |   
TempDB 檔案成長模式  |    設定為自動成長  |   
TempDB檔案成長量  |    TempDB檔案成長增量設成合理的大小  |   
TempDB檔案大小初始大小  |    如果TempDB檔案初始太小設大一點,減少檔案增大時所費的IO  |   
TempDB檔案個數  |    視機器上的CPU數而定  |   
TempDB每一個資料檔大小相同  |    可等比例寫入TempDB的檔案  |   
TempDB放在快速I/O的儲存體上  |    建議放在RAID 0的儲存體上  |   
與使用者資料庫分開  |    避免TempDB影響到使用者資料庫  |   
(5)          TempDB的監控:監控TempDB的成長量與IO,可以有效的預防因TempDB引起的效能低落的問題。
沒有留言:
張貼留言