Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 8936|Répondre: 0

Verrous SQL NOLOCK, HOLDLOCK, UPDLOCK, TABLOCKX, TABLOCKX

[Copié le lien]
Publié sur 20/07/2016 14:02:51 | | |

NONLOCK
Lorsque cette option est sélectionnée, SQL Server lit ou modifie les données sans aucun verrouillage. Dans ce cas, l’utilisateur peut lire des données provenant d’une transaction non engagée ou d’un retour en arrière, appelé « données sales ».

VERROUILLAGE DE MAINTIEN
Lorsque cette option est sélectionnée, SQL Server maintient ce verrou partagé jusqu’à la fin de toute la transaction sans le relâcher en chemin.

MISE À JOUR
Lorsque cette option est sélectionnée, SQL Server utilise un verrou de modification au lieu d’un verrou partagé lors de la lecture des données et maintient ce verrou jusqu’à la fin de toute la transaction ou de la commande. Cette option garantit que plusieurs processus peuvent lire les données simultanément, mais que seul ce processus peut modifier les données.

TABLOCK
Lorsque cette option est sélectionnée, SQL Server place un verrou partagé sur toute la table jusqu’à la fin de la commande. Cette option garantit que les autres processus ne peuvent que lire les données et ne pas les modifier.

PAGLOCK
Cette option est l’option par défaut, et une fois sélectionnée, SQL Server utilise un verrou de page partagé.

TABLOCKX (Verrouillage exclusif de table)
Lorsque cette option est sélectionnée, SQL Server place un verrou sur toute la table jusqu’à la fin de la commande ou de la transaction. Cela empêchera d’autres processus de lire ou de modifier les données dans le tableau.

HOLDLOCK conserve le verrou partagé jusqu’à la fin de la transaction complète et doit être libéré dès que l’objet verrouillé n’est plus nécessaire, soit le niveau d’isolation de la transaction SÉRIALISABLE

L’instruction NOLOCK est exécutée sans émettre de verrou partagé, permettant des lectures sale, qui correspondent au niveau d’isolation de la transaction READ UNCOMMITTED

PAGLOCK utilise plusieurs verrous de page où un seul verrou de table est utilisé

READPAST permet au serveur SQL de sauter toutes les lignes verrouillées et d’exécuter des transactions, et pour les niveaux d’isolement des transactions READ NON engagés, ne sauter que les verrous RID, pas les verrous de page, de zone et de table

ROWLOCK impose l’utilisation des rowlocks

TABLOCKX impose l’utilisation d’un verrou exclusif au niveau de la table, qui empêche toute autre transaction d’utiliser la table pendant la transaction

UPLOCK impose l’utilisation de mises à jour lors de la lecture d’une table sans verrou partagé

Note : La différence entre verrouiller une table dans une base de données
SELECT * FROM table WITH (HOLDLOCK) D’autres transactions peuvent lire la table, mais ne peuvent ni être mises à jour ni supprimées
SELECT * FROM table WITH (TABLOCKX) Les autres transactions ne peuvent pas lire, mettre à jour et supprimer les tables




Précédent:Serrures, lectures sales, lectures non répétables et fausses lectures en SQL
Prochain:SQL Server examine l’impasse et le libère
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com