Настройка параметра конфигурации сервера cursor threshold

В этом разделе описывается настройка параметра конфигурации сервера cursor threshold в SQL Server 2012 с помощью Среда SQL Server Management Studio или Transact-SQL. Параметр cursor threshold используется для указания количества строк в наборе курсора, при котором наборы ключей курсора создаются асинхронно. Когда курсоры формируют набор ключей для результирующего набора, оптимизатор запросов прогнозирует количество строк, которые будут возвращены для этого результирующего набора. Если оптимизатор запросов определяет, что число возвращенных строк превышает указанное пороговое значение, курсор формируется асинхронно, позволяя пользователю извлекать из него строки при продолжающемся процессе его заполнения. В противном случае курсор формируется синхронно и запрос ожидает возвращения всех строк.

В этом разделе

  • Перед началом работы выполните следующие действия.

    Ограничения

    Рекомендации

    Безопасность

  • Настройка параметра cursor threshold с помощью следующих средств:

    Среда SQL Server Management Studio

    Transact-SQL

  • Дальнейшие действия.  После завершения настройки параметра 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.

Значок стрелки, используемый со ссылкой «В начало»[Top]

Использование среды SQL Server Management Studio

Настройка параметра cursor threshold

  1. В обозревателе объектов щелкните правой кнопкой мыши сервер и выберите пункт Свойства.

  2. Щелкните узел Дополнительно.

  3. В области Разное установите для параметра Cursor Threshold необходимое значение.

Значок стрелки, используемый со ссылкой «В начало»[Top]

Использование Transact-SQL

Настройка параметра cursor threshold

  1. Подключитесь к компоненту Компонент Database Engine.

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить. В этом примере описывается использование sp_configure для задания значения параметра cursor threshold равным 0, при котором наборы ключей курсора формируются асинхронно.

USE AdventureWorks2012 ;
GO
EXEC sp_configure 'show advanced options', 1 ;
GO
RECONFIGURE
GO
EXEC sp_configure 'cursor threshold', 0 ;
GO
RECONFIGURE
GO

Дополнительные сведения см. в разделе Параметры конфигурации сервера.

Значок стрелки, используемый со ссылкой «В начало»[Top]

Дальнейшие действия. После завершения настройки параметра cursor threshold

Параметр вступает в силу немедленно, без перезапуска сервера.

Значок стрелки, используемый со ссылкой «В начало»[Top]

См. также

Справочник

@@CURSOR_ROWS (Transact-SQL)

RECONFIGURE (Transact-SQL)

sp_configure (Transact-SQL)

UPDATE STATISTICS (Transact-SQL)

Основные понятия

Параметры конфигурации сервера