2010-08-24 5 views
0

Est-ce que quelqu'un a une bonne analogie avec les niveaux d'isolation des transactions SQLServer? (SQL2005 vers le haut)SQLServer Transaction Isolation Analogy

+0

Certains développeurs sont complètement ignorants de leur existence, je sais qu'ils existent et ont tâtonné. J'ai besoin de quelque chose pour attirer l'équipe dans l'arène pour une discussion appropriée. Peut-être même faire participer le patron. –

+2

Qu'essayez-vous exactement d'accomplir? Avez-vous un problème qui ne peut être résolu qu'en modifiant les niveaux de transaction? Ils sont bien documentés dans la documentation en ligne, mais à moins que vous ayez une application pratique à l'esprit, vous n'êtes pas sûr de ce dont vous avez besoin. Et si par "analogie" vous voulez dire "explication simple" alors l'article de Wikipédia semble assez clair. – Pondlife

+0

J'ai récemment vu quelques blocages sur un projet. En regardant un code, je ne suis pas surpris. J'ai besoin d'introduire le sujet de telle sorte que les gens ne commencent pas à hocher la tête en pensant "c'est votre problème, pas le mien". - Je crois que quiconque écrit sql sur le projet devrait avoir une certaine compréhension des implications de verrouillage de leur code. A propos de.com a également une explication simple: http://databases.about.com/od/sqlserver/a/isolationmodels.htm Je pensais qu'une bonne analogie pourrait mieux le résoudre dans nos esprits. –

Répondre

4

La meilleure analogie que j'ai pu utiliser est le contrôle de code source et la création d'applications. Une extraction est un verrou et une construction est une transaction.

Je ne l'ai pas écrit auparavant, donc ce qui suit n'est qu'un bref résumé du concept que j'utilise. Comme toute analogie, il va s'effondrer si vous l'étirez trop loin.

Lire Engagé - le code est vérifié (verrouillé) et vous ne pouvez pas construire le code (transaction) jusqu'à ce que le code est vérifié dans

Lire Uncommitted -. Vous pouvez voir le code, mais vous ne savez pas si c'est l'ancienne version ou la version mise à jour. Une construction peut fonctionner ou ne pas fonctionner selon si tout le code a été vérifié encore. Répétable Lecture - les fichiers ne peuvent pas être extraits pendant la construction, mais les fichiers peuvent être ajoutés au projet s'ils n'affectent pas la construction.

Sérialisable - les fichiers ne peuvent pas être extraits ou ajoutés pendant que la construction est en cours; l'ensemble du projet est utilisé/vérifié (verrouillage de la plage). Snapshot - l'utilisateur travaille avec les fichiers étiquetés comme une version, mais ne voit pas les changements pour la prochaine version.