J'ai une transaction de longue durée (appelée, par exemple, T1) qui effectue des suppressions, des mises à jour et des insertions sur une table dans SQL Server 2008 R2. Dans le même temps, un autre processus exécute périodiquement les instructions select de cette table.
Sous les paramètres d'isolement par défaut (LIRE COMMIS, je pense?), T1 bloque l'exécution de toutes les instructions Select jusqu'à ce que la transaction soit validée ou annulée.
Ce que j'aimerais voir, c'est que les instructions select fonctionnent sur des données cohérentes même lorsque la transaction est en cours. Je crois que l'isolement INSTANTANÉ peut aider, mais je ne sais pas si je vais dans la bonne direction. Serait-ce le meilleur niveau d'isolement pour cette application?
Deuxièmement, je n'ai aucun contrôle sur le processus qui appelle les instructions select, mais j'ai le contrôle sur l'application .NET qui appelle T1. Des modifications du niveau d'isolement seraient-elles nécessaires à la fois sur les instructions select et sur T1, ou suffirait-il de marquer uniquement T1 comme ayant un niveau d'isolement différent?