Partager via


Définition du niveau d’isolation des transactions

Pour définir le niveau d’isolation des transactions, une application utilise l’attribut de connexion SQL_ATTR_TXN_ISOLATION. Si la source de données ne prend pas en charge le niveau d’isolation demandé, le pilote ou la source de données peut définir un niveau supérieur. Pour déterminer les niveaux d’isolation des transactions qu’une source de données prend en charge et quel est le niveau d’isolation par défaut, une application appelle SQLGetInfo avec les options SQL_TXN_ISOLATION_OPTION et SQL_DEFAULT_TXN_ISOLATION, respectivement.

Des niveaux plus élevés d’isolation des transactions offrent la protection la plus élevée pour l’intégrité des données de base de données. Les transactions sérialisables ne sont pas affectées par d’autres transactions et sont donc garanties pour maintenir l’intégrité de la base de données.

Toutefois, un niveau plus élevé d’isolation des transactions peut entraîner des performances plus lentes, car il augmente les chances que l’application doive attendre que les verrous sur les données soient libérés. Une application peut spécifier un niveau d’isolation inférieur pour augmenter les performances dans les cas suivants :

  • Lorsqu’il peut être garanti qu’aucune autre transaction n’existe qui peut interférer avec les transactions d’une application. Cette situation se produit uniquement dans des circonstances limitées, par exemple lorsqu’une personne d’une petite entreprise gère des fichiers dBASE qui contiennent des données de personnel sur un ordinateur et ne partagent pas ces fichiers.

  • Lorsque la vitesse est plus critique que la précision et que toutes les erreurs sont susceptibles d’être petites. Par exemple, supposons qu’une entreprise réalise de nombreuses petites ventes et que de grandes ventes sont rares. Une transaction qui estime la valeur totale de toutes les ventes ouvertes peut utiliser en toute sécurité le niveau d’isolation Lecture non validée. Bien que la transaction inclue des commandes en cours d’ouverture ou de fermeture et qui sont ensuite restaurées, elles sont généralement annulées les unes des autres et la transaction serait beaucoup plus rapide, car elle n’est pas bloquée chaque fois qu’elle rencontre une telle commande.

Pour plus d’informations, consultez Accès concurrentiel optimiste.