适用于:Applies to: 是SQL ServerSQL Server(所有支持的版本)yesSQL ServerSQL Server (all supported versions) 是Azure SQL 托管实例Azure SQL Managed InstanceYesAzure SQL 托管实例Azure SQL Managed Instance适用于:Applies to: 是SQL ServerSQL Server(所有支持的版本)yesSQL ServerSQL Server (all supported versions) 是Azure SQL 托管实例Azure SQL Managed InstanceYesAzure SQL 托管实例Azure SQL Managed Instance


AttributeAttribute Value
产品名称Product Name SQL ServerSQL Server
事件 IDEvent ID 833833
组件Component SQLEngineSQLEngine
符号名称Symbolic Name BUF_LONG_IOBUF_LONG_IO
消息正文Message Text SQL Server 已 %d 次遇到了针对数据库 [%ls] (%d) 中文件 [%ls] 的、所需完成时间超过 %d 秒的 I/O 请求。SQL Server has encountered %d occurrence(s) of I/O requests taking longer than %d seconds to complete on file [%ls] in database [%ls] (%d). OS 文件句柄是 0x%p。The OS file handle is 0x%p. 最新的长时间 I/O 操作的偏移量是: %#016I64x。The offset of the latest long I/O is: %#016I64x.


该消息指示 SQL ServerSQL Server 已从磁盘发出读取或写入请求,并且表明该请求返回所用的时间已超过 15 秒。This message indicates that SQL ServerSQL Server has issued a read or write request from disk, and that the request has taken longer than 15 seconds to return. 此错误是由 SQL ServerSQL Server 报告,表明 I/O 子系统有问题。This error is reported by SQL ServerSQL Server and indicates a problem with the I/O subsystem. 你可能还会注意到与此消息关联的其他症状:PAGEIOLATCH 等待时间很长、系统事件日志中有警告或错误、系统监视计数器中有磁盘延迟问题迹象。You might also notice other symptoms associated with this message: high wait times for PAGEIOLATCH waits, warnings, or errors in the system event log, indications of disk latency issues in system monitor counters. 请监视 sys.dm_io_virtual_file_stats 并为存储吞吐量选择适当的存储层和 IOPS。Monitor sys.dm_io_virtual_file_stats and choose appropriate storage tier and IOPS for your storage throughput.

可能的原因Possible Causes

这种问题可能是由于以下原因所致:操作系统性能问题、硬件错误、固件错误、设备驱动程序问题或在 I/O 进程或数据库文件存储路径中存在筛选器驱动程序干预。This problem can be caused by operating system performance issues, hardware errors, firmware errors, device driver problems, or filter driver intervention in the I/O process or storage path of database files. SQL Server 记录它发起 I/O 请求的时间,并记录 I/O 完成的时间。SQL Server records the time that it initiated an I/O request and records the time that the I/O was completed. 如果时间差为 15 秒或更长时间,则会检测到这种情况。If that difference is 15 seconds or longer, this condition is detected. 这也意味着 SQL Server 不是导致此消息描述和报告的 I/O 延迟情况的原因。This also means that SQL Server is not the cause of a delayed I/O condition that this message describes and reports. 这种情况称为“停滞的 I/O”。This condition is known as "stalled I/O." 大多数磁盘请求在磁盘的典型速度内发生。Most disk requests occur within the typical speed of the disk. 这种典型的磁盘速度通常称为“磁盘寻道时间”。This typical disk speed is frequently known as "disk seek time." 大多数标准磁盘的磁盘寻道时间是 10 毫秒或更短。Disk seek time for most standard disks occurs in 10 milliseconds or less. 因此,对于系统 I/O 路径返回到 SQL Server 来说,15 秒是一个非常长的时间。Therefore, 15 seconds is a very long time for the system I/O path to return to SQL Server.

用户操作User Action

通过检查系统事件日志获得硬件相关错误消息来纠正引错误。Troubleshoot this error by examining the system event log for hardware-related error messages. 并且,如果有特定于硬件的日志,也要进行检查。Also, examine hardware-specific logs if they are available. 应使用必要的方法和技术来确定操作系统、驱动程序或 I/O 硬件中出现延迟的原因。You should use the necessary methods and techniques to determine the cause of the delay in the operating system, with the drivers, or with the I/O hardware. 此问题的解决方法可能涉及更新所有设备驱动程序和固件,或执行与磁盘系统关联的其他诊断。Resolution of this problem could involve updating all device drivers and firmware or performing other diagnostics that are associated with your disk system.

使用性能监视器检查以下计数器:Use Performance Monitor to examine the following counters:

  • Average Disk Sec/TransferAverage Disk Sec/Transfer

  • Average Disk Queue LengthAverage Disk Queue Length

  • Current Disk Queue LengthCurrent Disk Queue Length

例如,运行 SQL ServerSQL Server 的计算机上的 Average Disk Sec/Transfer 时间通常少于 15 毫秒。For example, the Average Disk Sec/Transfer time on a computer that is running SQL ServerSQL Server is typically less than 15 milliseconds. 如果 Average Disk Sec/Transfer 值增加,这表明 I/O 子系统未能完全满足 I/O 需求。If the Average Disk Sec/Transfer value increases, this indicates that the I/O subsystem is not optimally keeping up with the I/O demand.

还可以使用像 Storport ETW 日志记录这样的工具来度量向磁盘单元发出的请求的延迟情况。You also can use facilities like Storport ETW logging to measure the latency of requests that are made to a disk unit. 另一种类似的磁盘 I/O 故障排除工具包是作为 Windows Performance Recorder 的内置配置文件提供的。Another similar disk I/O troubleshooting kit is available as a built-in profile of Windows Performance Recorder.


防病毒程序可能会减慢磁盘访问速度。Disk access can be slowed by an antivirus program. 若要提高访问速度,请将错误消息中指定的 SQL ServerSQL Server 数据文件从实时病毒扫描中排除。To increase access speed, exclude the SQL ServerSQL Server data files that are specified in the error message from active virus scans. 可以使用 fltmc.exe 命令行实用工具来查询系统上安装的所有筛选器驱动程序,并了解它对数据库文件的存储路径执行的功能。You can use the fltmc.exe command line utility to query all the filter drivers installed on the system and to understand the functions it performs on the storage path to the database files.

有关 I/O 错误的详细信息,请参阅 Microsoft SQL Server I/O 基础知识,第 2 章以及 上的知识库文章。For more information about I/O errors, see Microsoft SQL Server I/O Basics, Chapter 2 and the Knowledge Base article at