开发者

Lock Question - 'U' lock vs. 'X' lock

I have a couple questions concerning Update (U) locks and Exclusive (X) locks.

1) Am I correct that an 'X' lock is put on a resource when the resource is about to get updated?

2) I'm a little fuzzy on U locks. Am I correct that a U lock is applied when a resource is read and SQL Server thinks it might need to update the resource later? If this is correct, would a 'U' lock only get applied when a read is being done within the context of a transaction? I guess I'm trying to understand under what circumstances SQL Server thin开发者_JS百科ks it might need to update later a row it just read now.

Thanks - Randy


1) Am I correct that an 'X' lock is put on a resource when the resource is about to get updated?

Yes.

2) I'm a little fuzzy on U locks. Am I correct that a U lock is applied when a resource is read and SQL Server thinks it might need to update the resource later? If this is correct, would a 'U' lock only get applied when a read is being done within the context of a transaction? I guess I'm trying to understand under what circumstances SQL Server thinks it might need to update later a row it just read now.

U locks are compatible with the read locks but not with each other, X locks are not compatible even with the read locks.

U locks are placed by DML queries (UPDATE, DELETE, MERGE) while scanning the table rows (no decision to update is made yet), while X locks are placed when the decision is made to update the row.

In READ COMMITTED isolation mode, update locks are lifted after the record was evaluated to be left as is, in higher isolation modes they are kept until the end of the transaction.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜