Настройка порогового значения курсора (параметр конфигурации сервера)
Область применения: SQL Server
В этом разделе описывается настройка параметра конфигурации сервера cursor threshold в SQL Server с помощью SQL Server Management Studio или Transact-SQL. Параметр cursor threshold используется для указания количества строк в наборе курсора, при котором наборы ключей курсора создаются асинхронно. Когда курсоры формируют набор ключей для результирующего набора, оптимизатор запросов прогнозирует количество строк, которые будут возвращены для этого результирующего набора. Если оптимизатор запросов определяет, что число возвращенных строк превышает указанное пороговое значение, курсор формируется асинхронно, позволяя пользователю извлекать из него строки при продолжающемся процессе его заполнения. В противном случае курсор формируется синхронно, и запрос ожидает, пока не будут возвращены все строки.
В этом разделе
Перед началом:
Настройка параметра cursor threshold с помощью следующих средств:
Дальнейшие действия.После настройки параметра порогового значения курсора
Перед началом
Ограничения
SQL Server не поддерживает асинхронное создание управляемых набором ключей или статических курсоров Transact-SQL. Операции курсора Transact-SQL, такие как OPEN или FETCH, пакетные, поэтому не требуется асинхронное создание курсоров Transact-SQL. SQL Server продолжает поддерживать асинхронные управляемые набором ключей или статические курсоры интерфейса программирования приложений (API), где низкая задержка OPEN является проблемой из-за обхода клиента для каждой операции курсора.
Точность определения приблизительного количества строк в наборе ключей зависит от валюты, используемой в статистике по каждой таблице курсора с помощью оптимизатора запросов.
Рекомендации
Это расширенный параметр, и изменять его следует только опытным администраторам баз данных или сертифицированным по SQL Server специалистам.
Если значение параметра cursor threshold установить равным -1, все наборы ключей будут создаваться синхронно, что предпочтительно для небольших наборов курсоров. Если значение параметра cursor threshold установить равным 0, все наборы ключей будут создаваться асинхронно. При других значениях оптимизатор запросов сравнивает количество предполагаемых строк в наборе курсора и формирует набор ключей асинхронно, если значение превышает число, заданное параметром cursor threshold. Не следует присваивать параметру cursor threshold слишком низкое значение, поскольку небольшие результирующие наборы предпочтительно формировать в синхронном режиме.
Безопасность
Разрешения
Разрешения на выполнение хранимой процедуры sp_configure без параметров или только с первым параметром по умолчанию предоставляются всем пользователям. Для выполнения процедуры sp_configure с обоими параметрами для изменения параметра конфигурации или запуска инструкции RECONFIGURE необходимо иметь разрешение ALTER SETTINGS на уровне сервера. Разрешение ALTER SETTINGS неявным образом предоставлено предопределенным ролям сервера sysadmin и serveradmin .
Использование среды SQL Server Management Studio
Настройка параметра cursor threshold
В обозревателе объектов щелкните правой кнопкой мыши сервер и выберите пункт Свойства.
Щелкните узел Дополнительно .
В области Разноеустановите для параметра Порог курсора необходимое значение.
Использование Transact-SQL
Настройка параметра cursor threshold
Соединитесь с ядром СУБД .
На панели «Стандартная» нажмите Создать запрос.
Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить. В этом примере описывается использование хранимой процедуры sp_configure для задания значения параметра
cursor threshold
равным0
, при котором наборы ключей курсора формируются асинхронно.
USE AdventureWorks2022;
GO
EXEC sp_configure 'show advanced options', 1 ;
GO
RECONFIGURE
GO
EXEC sp_configure 'cursor threshold', 0 ;
GO
RECONFIGURE
GO
Дополнительные сведения см. в разделе Параметры конфигурации сервера (SQL Server).
Продолжение: после настройки параметра cursor threshold
Параметр вступает в силу немедленно, без перезапуска сервера.
См. также
@@CURSOR_ROWS (Transact-SQL)
RECONFIGURE (Transact-SQL)
Параметры конфигурации сервера (SQL Server)
sp_configure (Transact-SQL)
UPDATE STATISTICS (Transact-SQL)