Configurar a opção de configuração de servidor cursor thresholdConfigure the cursor threshold Server Configuration Option

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Este tópico descreve como configurar a opção de configuração de servidor cursor threshold no SQL ServerSQL Server usando o SQL Server Management StudioSQL Server Management Studio ou o Transact-SQLTransact-SQL.This topic describes how to configure the cursor threshold server configuration option in SQL ServerSQL Server by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. A opção cursor threshold especifica o número de linhas no conjunto de cursores em que os conjuntos de chaves de cursor são gerados de forma assíncrona.The cursor threshold option specifies the number of rows in the cursor set at which cursor keysets are generated asynchronously. Quando os cursores geram um conjunto de chaves para um conjunto de resultados, o otimizador de consulta calcula o número de linhas que serão retornadas para aquele conjunto de resultados.When cursors generate a keyset for a result set, the query optimizer estimates the number of rows that will be returned for that result set. Se o otimizador de consulta calcular que o número de linhas retornadas é maior do que esse limite, o cursor será gerado de forma assíncrona, permitindo que o usuário busque linhas do cursor enquanto o cursor continua sendo populado.If the query optimizer estimates that the number of returned rows is greater than this threshold, the cursor is generated asynchronously, allowing the user to fetch rows from the cursor while the cursor continues to be populated. Caso contrário, o cursor é gerado de forma síncrona e a consulta aguarda até que todas as linhas sejam retornadas.Otherwise, the cursor is generated synchronously, and the query waits until all rows are returned.

Neste tópicoIn This Topic

Antes de começarBefore You Begin

Limitações e restriçõesLimitations and Restrictions

  • SQL ServerSQL Server não dá suporte à geração de cursores Transact-SQLTransact-SQL controlados por conjunto de chaves ou estáticos de forma assíncrona.does not support generating keyset-driven or static Transact-SQLTransact-SQL cursors asynchronously. Transact-SQLTransact-SQL , como OPEN ou FETCH, são em lote, de modo que não é preciso gerar cursores Transact-SQLTransact-SQL assincronamente.cursor operations such as OPEN or FETCH are batched, so there is no need for the asynchronous generation of Transact-SQLTransact-SQL cursors. SQL ServerSQL Server continua a dar suporte a cursores de servidor de API (interface de programação de aplicativo) estáticos ou controlados por conjunto de chaves assíncronos nos quais OPEN de baixa latência é uma preocupação devido às viagens de ida e volta do cliente para cada operação de cursor.continues to support asynchronous keyset-driven or static application programming interface (API) server cursors where low latency OPEN is a concern, due to client round trips for each cursor operation.

  • A exatidão do otimizador de consulta para determinar uma estimativa do número de linhas em um conjunto de chaves depende da moeda das estatísticas para cada tabela no cursor.The accuracy of the query optimizer to determine an estimate for the number of rows in a keyset depends on the currency of the statistics for each of the tables in the cursor.

RecomendaçõesRecommendations

  • Esta é uma opção avançada e deve ser alterada somente por um administrador de banco de dados experiente ou por um profissional de SQL ServerSQL Server certificado.This option is an advanced option and should be changed only by an experienced database administrator or certified SQL ServerSQL Server professional.

  • Se você definir o cursor threshold como -1, todos os conjuntos de chaves serão gerados de forma síncrona, o que beneficiará pequenos conjuntos de cursores.If you set cursor threshold to -1, all keysets are generated synchronously, which benefits small cursor sets. Se você definir o cursor threshold como 0, todos os conjuntos de chaves serão gerados de forma assíncrona.If you set cursor threshold to 0, all cursor keysets are generated asynchronously. Com outros valores, o otimizador de consulta irá comparar o número de linhas previstas no cursor definido e criará o conjunto de chaves de forma assíncrona se ele exceder o número definido em cursor threshold.With other values, the query optimizer compares the number of expected rows in the cursor set and builds the keyset asynchronously if it exceeds the number set in cursor threshold. Não defina cursor threshold com um valor muito baixo, pois conjuntos de resultados pequenos são criados melhor de forma síncrona.Do not set cursor threshold too low, because small result sets are better built synchronously.

SegurançaSecurity

PermissõesPermissions

Permissões de execução sem parâmetros ou com apenas o primeiro parâmetro em sp_configure são concedidas a todos os usuários por padrão.Execute permissions on sp_configure with no parameters or with only the first parameter are granted to all users by default. Para executar sp_configure com ambos os parâmetros para alterar uma opção de configuração ou executar a instrução RECONFIGURE, o usuário deve ter a permissão ALTER SETTINGS no nível do servidor.To execute sp_configure with both parameters to change a configuration option or to run the RECONFIGURE statement, a user must be granted the ALTER SETTINGS server-level permission. A permissão ALTER SETTINGS é implicitamente mantida pelas funções de servidor fixas sysadmin e serveradmin .The ALTER SETTINGS permission is implicitly held by the sysadmin and serveradmin fixed server roles.

Usando o SQL Server Management StudioUsing SQL Server Management Studio

Para configurar a opção cursor thresholdTo configure the cursor threshold option

  1. No Pesquisador de Objetos, clique com o botão direito do mouse em um servidor e selecione Propriedades.In Object Explorer, right-click a server and select Properties.

  2. Clique no nó Avançado .Click the Advanced node.

  3. Em Diversos, altere a opção Limite do Cursor para o valor desejado.Under Miscellaneous, change the Cursor Threshold option to the value you want.

Usando o Transact-SQLUsing Transact-SQL

Para configurar a opção cursor thresholdTo configure the cursor threshold option

  1. Conecte-se ao Mecanismo de Banco de DadosDatabase Engine.Connect to the Mecanismo de Banco de DadosDatabase Engine.

  2. Na barra Padrão, clique em Nova Consulta.From the Standard bar, click New Query.

  3. Copie e cole o exemplo a seguir na janela de consulta e clique em Executar.Copy and paste the following example into the query window and click Execute. Este exemplo mostra como usar sp_configure para definir a opção cursor threshold como 0 para que os conjuntos de chaves dos cursores sejam gerados de forma assíncrona.This example shows how to use sp_configure to set the cursor threshold option to 0 so that cursor keysets are generated asynchronously.

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

Para obter mais informações, veja Opções de configuração do servidor (SQL Server).For more information, see Server Configuration Options (SQL Server).

Acompanhamento: depois de configurar a opção cursor thresholdFollow Up: After you configure the cursor threshold option

A configuração entra em vigor imediatamente sem reiniciar o servidor.The setting takes effect immediately without restarting the server.

Consulte TambémSee Also

@@CURSOR_ROWS (Transact-SQL) @@CURSOR_ROWS (Transact-SQL)
RECONFIGURE (Transact-SQL) RECONFIGURE (Transact-SQL)
Opções de configuração do servidor (SQL Server) Server Configuration Options (SQL Server)
sp_configure (Transact-SQL) sp_configure (Transact-SQL)
UPDATE STATISTICS (Transact-SQL)UPDATE STATISTICS (Transact-SQL)