Configurer cursor threshold (option de configuration de serveur)

S’applique à :SQL Server

Cette rubrique explique comment configurer l’option de configuration de serveur cursor threshold dans SQL Server en utilisant SQL Server Management Studio ou Transact-SQL. L'option cursor threshold spécifie le nombre de lignes du jeu de curseurs à partir desquelles les jeux de clés de curseurs sont générés de façon asynchrone. Lorsque le curseur génère un jeu de clés pour un jeu de résultats, l'optimiseur de requête évalue le nombre de lignes renvoyées pour ce jeu de résultats. Si l'optimiseur de requête estime que le nombre de lignes renvoyées est plus élevé que ce seuil, le curseur est généré de façon asynchrone, ce qui permet à l'utilisateur de rechercher des lignes à partir du curseur alors que ce dernier continue d'être rempli. Dans le cas contraire, le curseur est généré de façon synchrone et la requête attend que toutes les lignes soient renvoyées.

Dans cette rubrique

Avant de commencer

Limitations et restrictions

  • SQL Server ne prend pas en charge la génération asynchrone de curseurs Transact-SQL pilotés par jeux de clés ou statiques. Les opérations Transact-SQL sur les curseurs telles que OPEN ou FETCH sont exécutées par lot : la génération asynchrone de curseurs Transact-SQL n'est donc pas nécessaire. SQL Server continue de prendre en charge les curseurs côté serveur d’API pilotés par jeux de clés ou statiques asynchrones si l’opération de curseur OPEN présente une latence trop faible, en raison des boucles clientes de chaque opération de curseur.

  • La précision avec laquelle l'optimiseur de requête va évaluer le nombre de lignes d'un jeu de clés dépend du degré d'actualité des statistiques pour chacune des tables dans le curseur.

Recommandations

  • Seul un administrateur de base de données qualifié ou un spécialiste agréé doit changer cette option avancée SQL Server.

  • Si vous attribuez la valeur -1 à l’option Seuil du curseur , tous les jeux de clés sont générés de façon synchrone (ce qui avantage les jeux de curseurs de petite taille). Si vous attribuez la valeur 0 à l'option cursor threshold , tous les jeux de clés de curseurs sont générés de manière asynchrone. Si d'autres valeurs sont définies, l'optimiseur de requêtes compare le nombre estimé de lignes du jeu de curseurs et crée le jeu de clés de façon asynchrone si ce nombre dépasse celui de l'option cursor threshold. N'attribuez pas une valeur trop faible à l'option Seuil du curseur , sachant que les petits jeux de résultats sont mieux générés de manière synchrone.

Sécurité

Autorisations

Les autorisations d’exécution de sp_configure , sans paramètre ou avec le premier paramètre uniquement, sont accordées par défaut à tous les utilisateurs. Pour exécuter sp_configure avec les deux paramètres afin de modifier une option de configuration ou d’exécuter l’instruction RECONFIGURE, un utilisateur doit disposer de l’autorisation de niveau serveur ALTER SETTINGS. L'autorisation ALTER SETTINGS est implicitement détenue par les rôles serveur fixes sysadmin et serveradmin .

Utilisation de SQL Server Management Studio

Pour configurer l'option cursor threshold

  1. Dans l’Explorateur d’objets, cliquez avec le bouton droit sur un serveur et sélectionnez Propriétés.

  2. Cliquez sur le nœud Avancé .

  3. Sous Divers, modifiez l'option Seuil du curseur selon vos besoins.

Utilisation de Transact-SQL

Pour configurer l'option cursor threshold

  1. Connectez-vous au Moteur de base de données.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.

  3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter. Cet exemple montre comment utiliser sp_configure pour attribuer à l’option cursor threshold la valeur 0 pour que les jeux de clés du curseur soient générés de façon asynchrone.

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

Pour plus d’informations, consultez Options de configuration de serveur (SQL Server).

Suivi : Après avoir configuré l'option Seuil du curseur

Le paramètre prend effet immédiatement sans redémarrage du serveur.

Voir aussi

@@CURSOR_ROWS (Transact-SQL)
RECONFIGURE (Transact-SQL)
Options de configuration du serveur (SQL Server)
sp_configure (Transact-SQL)
UPDATE STATISTICS (Transact-SQL)