(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引起的效能低落的問題。
沒有留言:
張貼留言