SQL Server locks explained

前端 未结 3 1899
情深已故
情深已故 2021-02-14 12:34

Below is a list of locks that SQL Server 2000 is meant to support. I am a bit confused as to what the \"intent\" locks actually mean. I\'ve looked around on the Web and the answ

相关标签:
3条回答
  • 2021-02-14 13:03

    Another important feature of the Intent locks is you don't place them from the code explicitly, they are requested implicitly when you place a non-intent lock.

    0 讨论(0)
  • 2021-02-14 13:18

    The SQL server MSDN page has a reasonable explanation:

    An intent lock indicates that SQL Server wants to acquire a shared (S) lock or exclusive (X) lock on some of the resources lower down in the hierarchy. For example, a shared intent lock placed at the table level means that a transaction intends on placing shared (S) locks on pages or rows within that table. Setting an intent lock at the table level prevents another transaction from subsequently acquiring an exclusive (X) lock on the table containing that page. Intent locks improve performance because SQL Server examines intent locks only at the table level to determine if a transaction can safely acquire a lock on that table. This removes the requirement to examine every row or page lock on the table to determine if a transaction can lock the entire table.

    0 讨论(0)
  • 2021-02-14 13:23

    The intent locks are placed on the table level and indicate that a transaction will place appropriate locks on some of the rows in the table.

    This speeds up conflict checking for transactions that need to place locks on the table level. For example a transaction needing an exclusive lock on a table can detect the conflict at the table level (the "intent shared" lock will be there), instead of having to examine all of the rows (or pages) for shared locks.

    0 讨论(0)
提交回复
热议问题