服务器配置:游标阈值
适用范围:SQL Server
本文介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中配置 cursor threshold
服务器配置选项。 该 cursor threshold
选项指定游标集中异步生成游标键集的行数。 当游标为结果集生成键集时,查询优化器估计为该结果集返回的行数。 如果查询优化器估算出的返回行数大于此阈值,则将异步生成游标,使用户能够在继续填充游标的同时从该游标中提取行。 否则,同步生成游标,查询将一直等待到返回所有行。
限制
SQL Server 不支持异步生成键集驱动或静态 Transact-SQL 游标。 Transact-SQL 游标操作(例如 OPEN
或 FETCH
已批处理),因此无需异步生成 Transact-SQL 游标。 由于每个游标操作的客户端往返,SQL Server 继续支持异步键集驱动或静态应用程序编程接口(API)服务器游标,因为低延迟 OPEN
是一个问题。
查询优化器估计键集中行数的准确性取决于游标中每个表统计信息的当前值。
建议
此选项是一个高级选项,仅应由有经验的数据库管理员或认证的 SQL Server 专业人员更改。
如果设置为 cursor threshold
cursor threshold
cursor threshold
的数字,则异步生成键集。 不要 cursor threshold
设置太低,因为小结果集最好同步生成。
权限
默认情况下,所有用户都具备不带参数或仅带第一个参数的 sp_configure
的执行权限。 若要使用两个参数执行 sp_configure
来更改配置选项或运行 RECONFIGURE
语句,用户必须拥有 ALTER SETTINGS
服务器级别权限。 ALTER SETTINGS
权限由 sysadmin 和 serveradmin 固定服务器角色隐式拥有。
使用 SQL Server Management Studio
在对象资源管理器中,右键单击服务器并选择 “属性” 。
选择“高级”节点。
在“杂项”下,将
cursor threshold
选项更改为所需的值。
使用 Transact-SQL
连接到 数据库引擎。
在标准栏上,选择“新建查询”。
将以下示例复制并粘贴到查询窗口中,然后选择“执行”。 此示例说明如何使用 sp_configure 将
cursor threshold
选项设置为0
,以便异步生成游标键集。USE master; GO EXECUTE sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXECUTE sp_configure 'cursor threshold', 0; GO RECONFIGURE; GO EXECUTE sp_configure 'show advanced options', 0; GO RECONFIGURE; GO
有关详细信息,请参阅服务器配置选项。
跟进:配置游标阈值选项后
该设置将立即生效,无需重新启动服务器。