Bonjour à tous,
Je pensais avoir trouvé la solution à mon problème avec le niveau d'isolation transactionnel SNAPSHOT. Mais c'est encore pire. Sûrement que je ne fais pas quelque chose correctement
Mon problème en question :
J'écris dans une table à une cadence d'une ligne par seconde.
De temps à autres, j'interroge cette table avec des requêtes assez lourdes, ce qui fait que l'écriture est bloquée pendant quelques secondes. Je me retrouve donc avec des trous qui peuvent aller jusqu'à 4 ou 5 secondes.
J'ai compris que le niveau d'isolation SNAPSHOT permettait de ne pas bloquer les écritures.
https://docs.microsoft.com/fr-fr/sql...ql-server-2017
Après avoir modifié la base :
et vérifié :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ALTER DATABASE DBName SET ALLOW_SNAPSHOT_ISOLATION ON,
Je lance la requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT name, snapshot_isolation_state_desc from sys.databases where name = 'DBName'
Ca ne change rien, ça freeze les écritures sur TableName
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT champs FROM TableName SNAPSHOT WHERE prédicat ORDER BY ordre ASC;
Si quelqu'un pouvait me dire ce que je ne fais pas correctement...
Partager