SQL Server 2005 (rdbms)
De Wiki1000
Nouveau mode d’isolation transactionnelle
SQL Serveur supporte depuis la version 2005 un nouveau mode d’isolation transactionnel appelé « Snapshot ».
Ce mode, identique au mode de fonctionnement d’Oracle, apporte plusieurs avantages :
- Les lectures ne sont pas verrouillées par les mises à jour. Ce point permet d’améliorer grandement la disponibilité de l’application lorsque des traitements effectuant de nombreuse mise à jour sont en cours d’exécution.
- Les éditions qui ont besoins d’une cohérence des lectures ne sont pas bloquantes pour les autres utilisateurs.
Les inconvénients du mode Snapshot sont :
- Les mises à jour peuvent être ralenties du fait de la gestion du suivi de version des enregistrements.
- Chaque enregistrement de la base nécessite 16 caractères supplémentaires, ce qui peut augmenter légèrement la taille des bases de données
- Les lectures utilisant le suivi de version nécessite de réaliser des « photos » de la base de données qui sont stockées dans la base de données temporaire du serveur. Celle-ci doit être correctement et largement dimensionnée.
- Certaine tournure de code peuvent ne plus fonctionner du fait que les lectures ne peuvent pas voir les données non validées.
Pilote SQL Serveur
Le pilote SQL Serveur supporte le nouveau mode SnapShot sans toutefois l’imposer :
- Si le mode SnapShot est activé dans la base de données il est utilisé, sinon il n’est pas utilisé.
- Lors de la création d’une nouvelle base de données le mode SnapShot est activé.
Activer le mode SnapShot sur une base existante.
Pour activer le mode SnapShot sur une base existante :
- Déconnecter tous les utilisateurs
- Exécuter l’ordre suivant :
- ALTER DATABASE MaBasedeDonnee SET READ_COMMITTED_SNAPSHOT ON
Pour vérifier que la base est en mode SnapShot :
SELECT is_read_committed_snapshot_on FROM sys.databases WHERE name= 'YourDatabase'