Max Async I/O
默認的 32 對於低端磁盤子系統已足夠。對於附加到可進行高速磁盤 I/O 傳輸的數據庫服務器的高端 RAID(廉價冗余磁盤陣列)存儲子系統,選擇 32 可能會對 RAID 子系統造成影響,因為 RAID 子系統可以完成比 32 多得多的磁盤同時傳輸請求。除此以外,如果 SQL Server 的寫活動規定需要更高的磁盤傳輸能力,那麼應將 max async I/O 設置得更高。
注意 Microsoft Windows 95/98 平台不支持異步 I/O,所以此選項不適用。
能使 Checkpoint“足夠快”的值即是好的 max async I/O 值。其目的是使 Checkpoint 足夠快完成以便在需要下一個檢查點之前結束(根據所需恢復特性),但不能快到使系統受到事件嚴重干擾的程度(如磁盤隊列,將在本文的後面詳細進行討論)。
為運行在大型磁盤子系統的 SQL Server 設置 max async I/O 的經驗法則是用 2 或 3 乘以可同時進行 I/O 操作的物理驅動器的數量。然後監視 Performance Monitor,看是否有磁盤活動或隊列問題的跡象。將此配置選項設置得過高的負面影響是 Checkpoint 可能獨占磁盤子系統帶寬,而其它 SQL Server I/O 操作(如讀取)也需要使用磁盤子系統帶寬。
要設置該值,請在 SQL Server Query Analyzer 中執行以下命令:sp_configure 'max async io',
,其中 < value> 表示在一個檢查點操作過程中,SQL Server 系統可提交給 Windows 的同時磁盤 I/O 請求的數量,Windows 然後又將請求提交給物理磁盤子系統。(有關詳細信息,請參見本文後面的“磁盤 I/O 性能”部分。)此配置選項是動態的(也就是說,它不要求 SQL Server 停止然後重新啟動才能生效)。
有關詳細信息,請在 SQL Server Books Online 中搜索字符串“I/O architecture”和“max async I/O option”。