2009-11-03 7 views
5

Je sais que TRANSACTION ISOLATION LEVEL dans SQL Server est "read committed" par défaut. Si je veux le changer en "LIRE UNCOMMITTED", comment puis-je faire changer cette configuration?Comment puis-je modifier le paramètre TRANSACTION ISOLATION LEVEL dans SQL Server 2005 par défaut?

note: Je ne peux pas utiliser SET TRANSACTION ISOLATION LEVEL, qui ne s'applique qu'à la session en cours. Je ne peux pas ajouter NOLOCK dans les requêtes car il y a des milliers de requêtes impliquées.

Merci


Merci pour votre réponse. Nous sommes d'accord pour lire des lignes sales. La mise à jour n'est pas un problème dans notre cas également. mais, je veux vraiment changer cette configuration par défaut du niveau d'isolement. S'il vous plaît veuillez aider.

Je ne peux pas "REGLER LE NIVEAU D'ISOLATION DE LA TRANSACTION LECTURE NON ACCEPTEE". Je dois faire le changement global.


Nous avons soigneusement examiné le niveau d'isolement des instantanés. Ils ne peuvent pas être utilisés dans notre situation.

+0

Je suis très curieux de savoir quel problème spécifique que vous utilisez dans où lecture non validée est bien d'être votre seule solution? Je suppose une sorte de conflit de verrous, mais il existe plusieurs façons de résoudre de tels problèmes. –

+0

Je suis tombé sur cette recherche pour savoir si c'est possible, parce que je me demande si quelqu'un peut nous avoir fait ça. Est-ce que quelqu'un sait? – Joshua

Répondre

1

What about:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 

Il appliquera uniquement à la transaction en cours.

+0

Cela s'appliquera non seulement à la transaction en cours, mais à la durée de la connexion. Voir http://msdn.microsoft.com/en-us/library/ms173763(v=SQL.90).aspx pour référence. –

3

Je ne pense vraiment pas que vous devriez définir cela à un niveau global. Vous devriez installerez cette jolie attentivement, car vous pouvez vous retrouver avec beaucoup de problèmes différents:

  • Mises à jour perdues
  • lectures non répétables
  • sale lit
  • Phantom lit

Il n'est pas possible de définir cela à une base de données ou à un niveau de serveur - il ne peut être défini qu'à un niveau de connexion. Le meilleur que vous pouvez faire au niveau de la base de données est de définir les propriétés ALLOW_SNAPSHOT_ISOLATION ou READ_COMMITTED_SNAPSHOT. En savoir plus ici:

http://msdn.microsoft.com/en-us/library/tcbchxcb%28VS.80%29.aspx

Questions connexes