MSSQLSERVER_8651

适用范围:SQL Server

详细信息

Attribute
产品名称 SQL Server
事件 ID 8651
事件来源 MSSQLSERVER
组件 SQLEngine
符号名称 MEMGRANT_ERR
消息正文 未能执行所请求的操作,因为可用内存少于最小查询内存。 请减小“每次查询占用的最小内存”服务器配置选项的配置值。

说明

其他进程正在占用服务器内存(在服务器中施加内存压力)。

用户操作

减小“每次查询占用的最小内存”服务器配置选项的配置值,或者减少服务器的查询负载。

下面的列表概述了有助于解决内存错误的一般步骤:

  1. 验证其他应用程序或服务是否占用此服务器上的内存。 重新配置不太重要的应用程序或服务,使其占用更少的内存。

  2. 开始收集 SQL Server: Buffer ManagerSQL Server: Memory Manager 的性能监视器计数器。

  3. 检查以下 SQL Server 内存配置参数:

    • max server memory

    • min server memory

    • min memory per query

    注意不正常的设置。 根据需要更正它们。 SQL Server 联机丛书的“设置服务器配置选项”中列出了默认设置。

  4. 检查工作负荷(例如,并发会话数,当前执行的查询)。

以下操作可能会使更多内存可供 SQL Server 使用:

  • 如果除 SQL Server 外的应用程序正在占用资源,请尝试停止运行这些应用程序,或者考虑在单独的服务器上运行它们。 这样做将消除外部内存压力。

  • 如果你已配置“最大服务器内存”,请增加其设置值。

运行以下 DBCC 命令以释放几个 SQL Server 内存缓存。

  • DBCC FREESYSTEMCACHE

  • DBCC FREESESSIONCACHE

  • DBCC FREEPROCCACHE

如果问题仍存在,则您将需要进一步调查,可能需要减小工作负荷。

另请参阅

DBCC FREESYSTEMCACHE (Transact-SQL)
DBCC FREESESSIONCACHE (Transact-SQL)
DBCC FREEPROCCACHE (Transact-SQL)
服务器配置选项 (SQL Server)
SQL Server Buffer Manager 对象
SQL Server Memory Manager 对象