Partilhar via


Configuração do servidor: limite do cursor

Aplica-se a:SQL Server

Este artigo descreve como configurar a opção de configuração do servidor no SQL Server usando o cursor threshold SQL Server Management Studio ou o Transact-SQL. A cursor threshold opção especifica o número de linhas no conjunto de cursores nas quais os conjuntos de teclas do cursor são gerados de forma assíncrona. Quando os cursores geram um conjunto de chaves para um conjunto de resultados, o otimizador de consulta estima o número de linhas retornadas para esse conjunto de resultados. Se o otimizador de consulta estimar que o número de linhas retornadas é maior do que esse limite, o cursor é gerado de forma assíncrona, permitindo que o usuário busque linhas do cursor enquanto o cursor continua a ser preenchido. Caso contrário, o cursor é gerado de forma síncrona e a consulta aguarda até que todas as linhas sejam retornadas.

Limitações

O SQL Server não oferece suporte à geração de cursores de Transact-SQL estáticos ou controlados por conjunto de chaves de forma assíncrona. Transact-SQL operações do cursor, como OPEN ou FETCH são agrupadas em lote, portanto, não há necessidade da geração assíncrona de cursores Transact-SQL. O SQL Server continua a oferecer suporte a cursores de servidor assíncronos orientados por conjunto de chaves ou estáticos de interface de programação de aplicativos (API) onde a baixa latência OPEN é uma preocupação, devido a viagens de ida e volta do cliente para cada operação do cursor.

A precisão do otimizador de consulta para determinar uma estimativa para o número de linhas em um conjunto de chaves depende da moeda das estatísticas para cada uma das tabelas no cursor.

Recommendations

Esta opção é uma opção avançada e deve ser alterada apenas por um profissional de banco de dados experiente.

Se você definir cursor threshold como -1, todos os conjuntos de teclas serão gerados de forma síncrona, o que beneficia pequenos conjuntos de cursores. Se você definir cursor threshold como 0, todos os conjuntos de teclas do cursor serão gerados de forma assíncrona. Com outros valores, o otimizador de consulta compara o número de linhas esperadas no conjunto de cursores e cria o conjunto de teclas de forma assíncrona se exceder o número definido em cursor threshold. Não defina cursor threshold muito baixo, porque pequenos conjuntos de resultados são melhor construídos de forma síncrona.

Permissions

As permissões de execução em sp_configure sem parâmetros ou apenas com o primeiro parâmetro são concedidas a todos os usuários por padrão. Para executar sp_configure com ambos os parâmetros para alterar uma opção de configuração ou executar a RECONFIGURE instrução, um usuário deve receber a permissão no nível do ALTER SETTINGS servidor. A ALTER SETTINGS permissão é mantida implicitamente pelas funções de servidor fixas sysadmin e serveradmin .

Usar o SQL Server Management Studio

  1. No Pesquisador de Objetos, clique com o botão direito do mouse em um servidor e selecione Propriedades.

  2. Selecione o nó Avançado .

  3. Em Diversos, altere a cursor threshold opção para o valor desejado.

Utilize Transact-SQL

  1. Conecte-se ao Mecanismo de Banco de Dados.

  2. Na barra Padrão, selecione Nova consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e selecione Executar. Este exemplo mostra como usar sp_configure para definir a opção para cursor threshold que os 0 conjuntos de teclas do cursor sejam gerados de forma assíncrona.

    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
    

Para obter mais informações, consulte Opções de configuração do servidor.

Acompanhamento: Depois de configurar a opção de limite do cursor

A configuração entra em vigor imediatamente sem reiniciar o servidor.