qu'est-ce que l'impasse dans une base de données?
Ce qui est de l'impasse dans sql server et quand il se pose? Quels sont les problèmes de blocage et comment le résoudre?
OriginalL'auteur VenkatReddy.Ravu | 2010-05-05
Vous devez vous connecter pour publier un commentaire.
En général, blocage signifie que deux ou plusieurs entités sont le blocage de certaines sources, et aucun d'eux n'est capable de le finir, parce que leur sont sources de blocage de manière cyclique.
Un exemple: disons que j'ai des tables A et B, j'ai besoin de faire une mise à jour dans A, puis B et je décide de verrouiller à la fois au moment de l'utilisation (c'est vraiment stupide comportement, mais il sert son but, maintenant). Au même moment, quelqu'un d'autre fait la même chose dans l'ordre inverse des serrures de B tout d'abord, puis verrouille A.
Par ordre chronologique, ce qui se passe:
proc1: Verrouiller Un
proc2: Lock B
proc1: Lock B - les mises en attente jusqu'à ce que proc2 communiqués de B
proc2: Verrouiller Un - commence en attente jusqu'à ce que proc1 sorti Un
Il est évident que ni l'un ni l'arrivée. C'est l'impasse.
Le trou va beaucoup plus loin, mais c'est juste à l'entrée et si vous avez besoin d'en savoir plus, investir de votre temps. Dans notre université, il y a l'ensemble des conférences sur le qui - ne pensez donc pas que la lecture de quelques articles font de vous un expert 😉
Nolock est exactement ce que fait - permet de s'assurer qu'aucun verrouillage n'est généré par la requête. Point. Il n'a pas d'inluence rien d'autre que cela.
C'est drôle parce que j'ai googlé et c'était le premier résultat 🙂
OriginalL'auteur Pz.
Blocage est ce qui se passe lorsque deux personnes ont besoin de plusieurs ressources d'exécution, et où les ressources sont verrouillés par chacune des personnes. Cela conduit au fait que l'Un ne peut pas s'exécuter sans quelque chose de B a et vice versa.
Permet de dire que j'ai Une Personne et la Personne B. Elles doivent toutes les deux pour obtenir deux lignes à exécuter (Row1 et Row2).
Personne A ne peut pas s'exécuter car il a besoin de Row2, la Personne B ne peut pas s'exécuter car il a besoin de Row1. Personne ne sera jamais en mesure d'exécuter parce qu'ils sont de verrouillage à ce que les besoins d'autres et vice versa.
- On raisonnablement moyen simple de réduire le blocage est dans toutes vos transactions complexes, vous devez effectuer des opérations dans le même ordre. En d'autres termes, l'accès Table1 puis Table2 dans le même ordre. Cela permettra de réduire le nombre de blocages qui se produisent.
OriginalL'auteur
Une impasse qui peuvent en résulter lorsque deux (ou plus) les transactions sont chaque
d'attente pour les serrures à être libérées qui sont détenus par les autres.
OriginalL'auteur bibek khadgi