服务器配置:查询调控器成本限制

适用范围:SQL Server

本文介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中配置 query governor cost limit 服务器配置选项。 “开销限制”选项指定运行给定查询所允许的估计开销的上限。 查询成本是由查询优化器根据估计的执行要求(如 CPU 时间、内存和磁盘 I/O)确定的抽象数字。 它是指在特定硬件配置中完成查询所需的估计占用时间(秒)。 此抽象图不等同于在正在运行的实例上完成查询所需的时间。 应将其视为一个相对度量值。 此选项的默认值为 0:将查询调控器设置为 off。 将值设置为 0 允许所有查询在不受时间限制的情况下运行。 如果为该选项指定一个非零、非负的数值,则查询调控器将不允许执行估计开销超过该值的查询。

建议

此选项是一个高级选项,仅应由有经验的数据库管理员或认证的 SQL Server 专业人员更改。

若要在每个连接基础上更改查询调控器开销限制值,请使用 SET QUERY_GOVERNOR_COST_LIMIT 语句。

权限

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

使用 SQL Server Management Studio

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

  2. 选择“连接”页。

  3. 选中或清除“使用查询调控器防止查询长时间运行”复选框。

    如果选中此复选框,请在下面的框中输入一个正值,查询调控器将禁止执行估计开销超过该值的所有查询。

使用 Transact-SQL

  1. 连接到 数据库引擎。

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

  3. 将以下示例复制并粘贴到查询窗口中,然后选择“执行”。 此示例演示如何使用 sp_configure 将选项的值 query governor cost limit 设置为估计的查询成本上限 120

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'query governor cost limit', 120;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'show advanced options', 0;
    GO
    
    RECONFIGURE;
    GO
    

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

跟进:配置查询调控器成本限制选项后

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