[SQL][Performance]如果查驗磁碟的 BlockSize 是否為 64KB ?

[SQL][Performance]如果查驗磁碟的 BlockSize 是否為 64KB ?

前一陣子幫一些同仁預備一些基礎的 DBA 課程,當中有介紹到 SQL Server 的最小單位 Page 是 8KB 的大小,但實際使用的是一個 Entend ,他是八連續的 Page,因為會佔用 64KB。這有點像是在台灣我們最小的金額是用「角」,但實際買賣是用「元」當單位的意思。

 

而這幾天收到當時上課同事的詢問:「要如何知道磁碟當時 Format 所指定的 Block Size 為何 ?」,基本上要查看這個非常容易,可以使用兩種方式來作查驗。

 

1. 使用 CHKDSK ,只要指定磁碟機代號就可以了

image

 

2. 使用 FSUTIL 的指令,但由於該指令功能較多,因此必須先提升開 DOS 視窗的時候必須先選擇「以系統管理者的身分執行」。然後使用指令「fsutil fsinfo ntfsinfo」,後面再加上磁碟機代號

image

 


如果確認是合適的大小,那麼就不用重新 Format 了,但如果想要更改,那麼直接把磁碟重新 FORMAT 的時候指定 ,可以利用檔案總管選擇磁碟機代號,使用 GUI 的方式來處理

image

 

或者是在 DOS 下使用 FORMAT 參數 /A: ,後面加上想要指定的 SIZE 就可以了。

image

 


 

如果想要更清楚了解為什麼要磁碟的 Block Szie 要跟 SQL Server  Extend 的大小設定為 64KB,可以參考 MSDN 上面的文章「Disk Partition Alignment Best Practices for SQL Server