Performance-Tuning

性能監視器中的 Sql Server 磁碟 I/O 吞吐量

  • November 10, 2021

我使用 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

我需要根據我的系統資源考慮主文件組的正確數據文件數量。

  1. 在同一個磁碟上的多個文件中拆分一個文件組對性能沒有好處。

TempDb並非如此,但原因是特定於支持高頻表的創建和刪除。請參閱減少 SQL Server tempdb 數據庫中分配爭用的建議

通常,跨多個文件拆分時 IO 不會更快,因此沒有“最佳實踐”為 TempDb 以外的數據庫使用多個文件。

使用 2、4 或 6 個文件創建文件組並不是一個壞習慣,尤其是在您的數據庫很大的情況下。但好處不是性能:它是在具有不同驅動器配置的伺服器上恢復的能力,或者最終將數據庫文件拆分到磁碟上。

引用自:https://dba.stackexchange.com/questions/302307