Opção cursor threshold

Use a opção cursor threshold para especificar o número de linhas no conjunto de cursores em que os conjuntos de chaves de 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 calcula o número de linhas que serão retornadas para aquele conjunto de resultados. 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. Caso contrário, o cursor é gerado de forma síncrona e a consulta aguarda até que todas as linhas sejam retornadas.

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. Se você definir o cursor threshold como 0, todos os conjuntos de chaves serão gerados de forma assíncrona. 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. Não defina cursor threshold com um valor muito baixo, pois conjuntos de resultados pequenos são criados melhor de forma síncrona.

ObservaçãoObservação

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

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.

A opção cursor threshold é uma opção avançada. Se você estiver usando o procedimento armazenado do sistema sp_configure para alterar a configuração, será possível alterar o cursor threshold só quando a opção show advanced options estiver definida como 1. A configuração entra em vigor imediatamente (sem reiniciar o servidor).