Microsoft 不在压缩驱动器上支持 SQL Server 7.0 或 2000 数据和日志文件。NTFS 压缩是不安全的,这不仅是因为它破坏了预写日志 (WAL) 协议,而且还因为它要求对每个 I/O 请求执行更多的处理。压缩禁止了异步 I/O,从而导致所有带有受影响数据或日志文件的 SQL Server I/O 都被同步执行。
解决办法:在这种情况下,我们总是建议客户解压缩他们的数据和日志文件。
NTFS 压缩可能导致 I/O 变慢,而 SQL Server 对此无能为力。就像任何其他用户模式应用程序一样,它是文件系统的客户端。当压缩对 SQL Server I/O 操作产生不利影响时,SP4 中新的延迟和阻塞 I/O 报告功能有助于查明问题所在。
附加数据点
系统进程中提供的等待类型信息可能有助于诊断 I/O 瓶颈。缓冲区 I/O 锁存器等待类型和写日志等待是调查 I/O 路径性能的关键指标。
小结
尽管阻塞和延迟 I/O 问题在 SQL Server 部署中很罕见,但从历史上来看,这些问题一旦发生,就非常难以解决。因为此类问题的根源通常存在于驱动程序或硬件设备中,所以调查和解决这类问题可能花费大量的时间,并且需要具有超出典型数据库管理员能力范围的专业技能。使用 SQL Server 2000 SP4 中的新工具可以显著减少解决此类问题所需的时间,并且最起码可以为 DBA 指明正确的方向。