MSSQLSERVER_845

适用范围:SQL Server

详细信息

特征
产品名称 SQL Server
事件 ID 845
事件来源 MSSQLSERVER
组件 SQLEngine
符号名称 BUFLATCH_TIMEOUT
消息正文 等待用于页 %S_PGID,数据库 ID %d 的缓冲区闩锁类型 %d 时发生超时。

说明

进程要等待获取闩锁,但进程等到时限过期后也未能获得闩锁。 其他任务阻塞系统进程时,通常会导致完成 I/O 操作的时间过长,这时则可能发生此错误。 在某些情况下,此错误可能是硬件故障的结果。

原因

此错误消息取决于系统的整体环境。 以下任一情况都可能导致系统过度受阻:

  • 硬件不符合输入/输出 (I/O) 和内存需求
  • 未正确配置和测试设置
  • 设计低效

当系统负载过大且无法满足工作负荷需求时,可能会看到错误 845。 造成环境超载的部分常见原因如下:

  • 硬件问题
  • 压缩卷
  • 非默认 SQL Server 配置设置
  • 查询或索引设计低效
  • 频繁的数据库自动增长或自动收缩作

用户操作

尝试执行以下操作以防止出现此错误:

  • 确定是否存在任何硬件瓶颈。 请参阅 “确定瓶颈 ”,了解一个良好的起点。 如有必要,升级硬件,使其满足环境配置、查询和负载的需求。

  • 验证所有硬件是否正常工作。 检查任何已记录的错误并运行硬件供应商提供的任何诊断程序。 在错误日志或事件日志中检查关联的 I/O 故障。 I/O 故障通常是指磁盘故障。

  • 确保未压缩磁盘卷。 不支持在压缩驱动器上存储数据和日志文件,请参阅 数据库文件和文件组。 有关压缩驱动器支持的其他信息,请查看以下文章: 有关压缩卷上 SQL Server 数据库支持的说明

  • 查看关闭以下所有 SQL Server 配置选项时错误消息是否消失:

  • 优化查询,以减少占用的系统资源。 性能优化有助于降低系统的压力,并提高单个查询的响应时间。

  • 将 autoshrink 属性设置为 OFF,以减少数据库大小的更改开销。

  • 请确保将自动增长属性设置为足够大的增量,以便不常增长。 计划作业以检查数据库中的可用空间,然后在非高峰时段增加数据库大小。

  • 检查错误日志以查找非生成任务和其他错误。 先解决这些错误,因为这些错误可能是导致根本问题的根本原因。

  • 如果经常发生断言等严重错误,请解决这些问题。

  • 如果 845 错误消息不常出现,则可以忽略错误。