Copyright microsoft
通常,以下问题是SQL Server查询出现 I/O 延迟的高级原因:
-
硬件问题:
-
SAN 配置错误 (交换机、电缆、HBA、存储)
-
超出的 I/O 容量 (整个 SAN 网络(而不仅仅是后端存储) )
-
驱动程序或固件问题
硬件供应商和/或系统管理员需要在此阶段参与。
-
-
查询问题:SQL Server使具有 I/O 请求的磁盘卷饱和,并且正在将 I/O 子系统推送到容量之外,从而导致 I/O 传输速率过高。 在这种情况下,解决方案是查找导致大量逻辑读取 (或写入) 的查询,并优化这些查询,以最大程度地减少磁盘 I/O,使用适当的索引是执行此操作的第一步。 此外,请保持统计信息的更新,因为它们为查询优化器提供足够的信息来选择最佳计划。 此外,不正确的数据库设计和查询设计可能会导致 I/O 问题增加。 因此,重新设计查询和有时表可能有助于改进 I/O。
-
筛选器驱动程序:如果文件系统筛选器驱动程序处理大量 I/O 流量,SQL Server I/O 响应可能会受到严重影响。 建议软件供应商对防病毒扫描进行适当的文件排除和正确的筛选器驱动程序设计,以防止对 I/O 性能造成影响。
-
其他应用程序 () :同一台计算机上的另一个应用程序SQL Server可能会使 I/O 路径饱和,而读取或写入请求过多。 这种情况可能会使 I/O 子系统超出容量限制,并导致 I/O SQL Server速度缓慢。 标识应用程序并对其进行优化或将其移动到其他位置,以消除其对 I/O 堆栈的影响。