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”。