Niveaux d'isolement des transactions

S’applique à :SQL ServerAzure SQL Managed Instance

SQL Server ne garantit pas que les indicateurs de verrou sont respectés dans les requêtes ayant accès aux métadonnées à partir d'affichages catalogue, de vues de compatibilité, de vues de schémas d'informations et de fonctions intégrées générant des métadonnées.

En interne, le Moteur de base de données SQL Server ne respecte que le niveau d'isolement READ COMMITTED pour l'accès aux métadonnées. Quand une transaction a un niveau d'isolement correspondant, par exemple, à SERIALIZABLE et qu'un accès aux métadonnées est tenté dans le cadre de cette transaction à partir de vues de catalogue ou de fonctions intégrées générant des métadonnées, les requêtes sont exécutées jusqu'à ce qu'elles soient achevées en tant que READ COMMITTED. Dans le cas d'un isolement d'instantané, l'accès aux métadonnées peut toutefois échouer à cause d'opérations DDL simultanées. Étant donné que les métadonnées sont dépourvues de version, l'accès aux éléments suivants peut échouer en cas d'isolement d'instantané :

  • Affichages catalogue

  • vues de compatibilité ;

  • Vues des schémas d'informations

  • fonctions intégrées générant des métadonnées ;

  • Groupe sp_help de procédures stockées

  • Procédures de catalogue SQL Server Native Client

  • vues et fonctions de gestion dynamique.

Pour plus d’informations sur les niveaux d’isolation, consultez SET TRANSACTION ISOLATION LEVEL (Transact-SQL).

Le tableau suivant comporte une synthèse d'accès aux métadonnées pour les différents niveaux d'isolement.

Niveau d'isolation Pris en charge Respect
READ UNCOMMITTED Non Non garanti
READ COMMITTED Oui Oui
REPEATABLE READ Non Non
SNAPSHOT ISOLATION Non Non
SERIALIZABLE Non Non