使用多個資料檔案可減少 tempdb 儲存體爭用並明顯產生更好的延展性。
- 如果的邏輯處理器數目小於或等於 8,使用相同數目的資料檔案做為邏輯處理器。
- 如果邏輯處理器數目大於 8,使用 8 為資料檔案,然後如果爭用持續,請增加資料檔案數目 (最多的邏輯處理器數目) 的 4 的倍數直到爭用降低至可接受的層級,或變更的工作負載/程式碼。
- 建立最大化磁碟頻寬所需的最多檔案。使用多個檔案可減少 tempdb 儲存體爭用並明顯產生更好的延展性。
- 不過,不要建立太多檔案,因為這樣會降低效能及增加管理負擔。
- 一般來說,請為伺服器上的每一個 CPU 建立一個資料檔 (來負責任何相似性遮罩設定),然後依需要向上或向下調整檔案數。
- 請注意,雙核心 CPU 被視為兩個 CPU。
-- 01_安裝程式,自動為 tempdb 建立多個資料檔案
-- 02_CPU只有一個核心
-- 03_自動偵測_設定僅使用一個 tempdb 資料檔案
-- 04_刻意調整為超過CPU核心數量的資料檔案,錯誤產生
使用SSMS管理工具,檢視tempdb的資料庫檔案
-- 05_SSMS_檢視tempdb的資料庫檔案
使用TSQL,檢視tempdb的資料庫檔案
USE tempdb GO SELECT name N'邏輯名稱' , size/128.0 N'使用的磁碟空間(MB)' , CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 N'資料實際上使用的空間(MB)', case is_percent_growth when 0 then concat(growth * 8, 'KB') else concat(cast(growth as decimal(5, 2)), '%') end N'檔案成長方式', size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 N'剩餘的可用空間(MB)', physical_name N'完整檔案路徑與名稱' FROM sys.database_files; GO
-- 06_TSQL_檢視tempdb的資料庫檔案
參考資料
若要降低 SQL Server tempdb 資料庫中的配置爭用的建議
https://support.microsoft.com/en-us/kb/2154845/zh-tw
最佳化 tempdb 效能 - SQL Server 2008 R2
https://technet.microsoft.com/zh-tw/library/ms175527(v=sql.105).aspx
Working with tempdb in SQL Server 2005
https://technet.microsoft.com/en-us/library/cc966545.aspx
tempdb Database - SQL Server 2016 Community Technology Preview 2 (CTP2).
https://msdn.microsoft.com/en-us/library/ms190768.aspx
SQL Server 2016 新功能搶先看 - 動態資料遮罩 / 多重 tempdb 資料檔
http://blogs.technet.com/b/technet_taiwan/archive/2015/06/11/sql-server-2016-new-features-dynamic-data-masking-tempdb.aspx
SQL Server 2016 CTP2 : first thoughts about tempdb database
http://www.dbi-services.com/index.php/blog/entry/sql-server-2016-ctp2-first-thoughts-about-tempdb-database
沒有留言:
張貼留言