服务器配置:查询等待

适用范围:SQL Server

本文介绍如何通过使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中配置“查询等待”服务器配置选项。 当没有足够的内存来运行查询时,大量占用内存的查询(如那些涉及排序和哈希操作的查询)将排队等待。 “查询等待值”选项指定一个查询在超时前等待所需资源的时间(以秒为单位,范围从 0 到 2,147,483,647)。该选项的默认值为 -1。 这意味着超时值计算为估计的查询开销的 25 倍。

重要

包含等待查询的事务在查询等待内存时可能会持有锁。 在极个别的情况下,可能会发生无法检测到的死锁。 减少查询等待时间可降低这类死锁的概率。 最终,等待的查询将被终止并且事务锁将被释放。 但是,增加最大等待时间将增大该类查询被终止的时间。 不建议改变该选项。

建议

此选项是一个高级选项,应仅由经验丰富的数据库专业人员更改。

权限

默认情况下,所有用户都具备不带参数或仅带第一个参数的 sp_configure 的执行权限。 若要使用两个参数执行 sp_configure 来更改配置选项或运行 RECONFIGURE 语句,用户必须拥有 ALTER SETTINGS 服务器级别权限。 ALTER SETTINGS 权限由 sysadmin 和 serveradmin 固定服务器角色隐式拥有。

使用 SQL Server Management Studio

  1. 在对象资源管理器中,右键单击服务器并选择 “属性”

  2. 选择“高级”节点。

  3. “并行” 中,为“查询等待值” 选项键入所需的值。

使用 Transact-SQL

  1. 连接到 数据库引擎。

  2. 在标准栏上,选择“新建查询”。

  3. 将以下示例复制并粘贴到查询窗口中,然后选择“执行”。 此示例说明如何使用 sp_configurequery wait 选项的值设置为 7500 秒。

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'query wait', 7500;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'show advanced options', 0;
    GO
    
    RECONFIGURE;
    GO
    

有关详细信息,请参阅服务器配置选项

跟进:在配置查询等待值选项之后

该设置将立即生效,无需重新启动服务器。