為了減少TempDB的IO,容量設定是一個關鍵因素,設定適當的檔案初始大小與成長量可以增加效能,此此外TempDB有二個(含)資料檔案以上時,每個檔案的大小與成長量都要設定一致,才能達到負載平衡。
為了減少TempDB的IO,容量設定是一個關鍵因素,設定重點為:
最後TempDB有二個(含)資料檔案以上時,每個檔案的大小與成長量都要設定一致,原因是SQL SERVER會依資料檔案大小按比例分散IO。
以下是實作設定檔案容量與成長量:
--查詢TempDB檔案的大小
SELECT
name AS FileName, size*1.0/128 AS FileSizeinMB,
CASE max_size WHEN 0 THEN 'Autogrowth is off.'
WHEN -1 THEN 'Autogrowth is on.'
ELSE 'Log file will grow to a maximum size of 2 TB.' END Autogrowth ,
growth AS GrowthValue,
CASE WHEN growth = 0 THEN 'Size is fixed and will not grow.'
WHEN growth > 0 AND is_percent_growth = 0 THEN 'Growth value is in 8-KB pages.'
ELSE 'Growth value is a percentage.' END GrowthIncrement
FROM tempdb.sys.database_files;
查詢結果:
--修改檔案容量與成長量
USE [master]
GO
ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N'tempdev', SIZE = 102400KB, FILEGROWTH = 10%)
GO
ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N'tempdev2', SIZE = 102400KB, FILEGROWTH = 10%)
GO
ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N'templog', FILEGROWTH = 10%)
GO
查詢結果: