Question

Tout d'abord je ne demande pas si NOLOCK doit ou ne doit pas être utilisé. Sortons que.

Je suppose que la question se résume à la façon dont le serveur SQL écrit les données? Est-ce une ligne entière écrite à la fois ou est-il écrit une colonne à la fois?

Je demande parce que l'indicateur NOLOCK est envisagée. Une lecture sale est bien aussi longtemps que toute la ligne est retournée (ou non retourné). lignes partiellement écrites ne sont pas acceptables.

Était-ce utile?

La solution

Non. opérations de modification de données, mises à jour comme insertions et suppressions sont protégées par une faible niveau physique Verrous . Toutes les opérations d'accès aux données, y compris SELECT, sans verrouillage sont tenus de se conformer au protocole de verrouillage. Le résultat est que les écritures partielles ne sont jamais vus par un lecteur.

Autres conseils

Non, il ne reviendra pas des lignes partiellement écrites. NOLOCK signifie seulement que cette requête ne va pas créer de nouvelles serrures. Cela ne signifie pas qu'il ne sera pas honorer les verrous existants, et le serveur SQL ne fera rien qui écrit des données sans obtenir un verrou premier.

Qu'est-ce qu'il peut faire est de lignes retour qui sont périmées ou ne sont plus pertinentes parce que quelque chose d'autre a écrit à une ligne qui aurait normalement été verrouillé par cette requête.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top