Performance-Tuning
性能監視器中的 Sql Server 磁碟 I/O 吞吐量
我使用 sql server 2019 並在我的數據庫中啟用了跟踪標誌 1117(平等地增長文件組中的所有文件)。我需要根據我的系統資源考慮主文件組的正確數據文件數量。為此,我需要使用性能監控軟體檢查此操作。但我不知道應該使用哪些計數器(例如每秒寫入磁碟)
第一次測試:
CREATE DATABASE TestIO ON PRIMARY ( NAME = N'PRIMARY1', FILENAME = N'D:\DB\Temp\TestIO_PRIMARY1.mdf',FILEGROWTH=512GB,MAXSIZE=UNLIMITED,SIZE=2GB), FILEGROUP FG2 ( NAME = N'secondary', FILENAME = N'D:\DB\Temp\TestIO_secondary.ndf',FILEGROWTH=512GB,MAXSIZE=UNLIMITED,SIZE=2GB) LOG ON ( NAME = N'TestIO_log', FILENAME = N'D:\DB\Temp\TEST_log.ldf' ,FILEGROWTH=2GB,MAXSIZE=2TB,SIZE=2GB) GO
第二次測試:
USE master GO DROP DATABASE IF EXISTS TestIO CREATE DATABASE TestIO ON PRIMARY ( NAME = N'PRIMARY1', FILENAME = N'D:\DB\Temp\TestIO_PRIMARY1.mdf',FILEGROWTH=512GB,MAXSIZE=UNLIMITED,SIZE=2GB), ( NAME = N'PRIMARY2', FILENAME = N'D:\DB\Temp\TestIO_PRIMARY2.mdf',FILEGROWTH=512GB,MAXSIZE=UNLIMITED,SIZE=2GB), ( NAME = N'PRIMARY3', FILENAME = N'D:\DB\Temp\TestIO_PRIMARY3.mdf',FILEGROWTH=512GB,MAXSIZE=UNLIMITED,SIZE=2GB), ( NAME = N'PRIMARY4', FILENAME = N'D:\DB\Temp\TestIO_PRIMARY4.mdf',FILEGROWTH=512GB,MAXSIZE=UNLIMITED,SIZE=2GB), FILEGROUP FG2 ( NAME = N'secondary', FILENAME = N'D:\DB\Temp\TestIO_secondary.ndf',FILEGROWTH=512GB,MAXSIZE=UNLIMITED,SIZE=2GB) LOG ON ( NAME = N'TestIO_log', FILENAME = N'D:\DB\Temp\TEST_log.ldf' ,FILEGROWTH=2GB,MAXSIZE=2TB,SIZE=2GB) GO
我需要根據我的系統資源考慮主文件組的正確數據文件數量。
- 在同一個磁碟上的多個文件中拆分一個文件組對性能沒有好處。
TempDb並非如此,但原因是特定於支持高頻表的創建和刪除。請參閱減少 SQL Server tempdb 數據庫中分配爭用的建議。
通常,跨多個文件拆分時 IO 不會更快,因此沒有“最佳實踐”為 TempDb 以外的數據庫使用多個文件。
使用 2、4 或 6 個文件創建文件組並不是一個壞習慣,尤其是在您的數據庫很大的情況下。但好處不是性能:它是在具有不同驅動器配置的伺服器上恢復的能力,或者最終將數據庫文件拆分到磁碟上。