内容简介:键锁影响与给定谓词(种类)匹配的所有行 – 在示例中,所有具有surname =’Jones’的行都将受到影响.使用单词“range”,因为根据谓词可能会影响行范围,例如,如果谓词为age> 18那么年龄大于18的所有行都会受到影响.同样重要的是要明白,键锁并不是简单地单独锁定索引中的每个匹配行 – 您的示例键锁不仅会影响索引中所有现有行的姓氏“Jones”,还会影响任何修改现有行的尝试或者插入一个名为“琼斯”的新行.
我知道钥匙锁在索引中锁定一个键.但是,“关键”究竟是什么意思呢?
例如,如果我在一个姓氏列上有一个非聚集索引,并尝试更新surname =“Jones”,那么我会有效地锁定姓氏是“Jones”的表中的每一行吗?或者将索引锁定在更高级别,阻止访问除“琼斯”以外的姓氏的行?
我问的原因是在线书籍关于锁定粒度和层次结构的这个注释:
KEY: A row lock within an index used to protect key ranges in serializable transactions.
这表明一系列的钥匙将被锁定,而不仅仅是一个.
键锁影响与给定谓词(种类)匹配的所有行 – 在示例中,所有具有surname =’Jones’的行都将受到影响.
使用单词“range”,因为根据谓词可能会影响行范围,例如,如果谓词为age> 18那么年龄大于18的所有行都会受到影响.
同样重要的是要明白,键锁并不是简单地单独锁定索引中的每个匹配行 – 您的示例键锁不仅会影响索引中所有现有行的姓氏“Jones”,还会影响任何修改现有行的尝试或者插入一个名为“琼斯”的新行.
它可能有助于以稍微不同的方式思考锁 – 只有当SQL Server尝试获得可能不兼容的另一个锁(即同时具有两个锁是不合法的)时,锁才有效果.例如,如果您在具有年龄>的行上拥有专属密钥锁定18,并尝试插入或修改age = 42的行,然后SQL Server将首先尝试获取相关锁 – 看到存在具有年龄>的行的现有密钥锁. 18 SQL Server确定锁是不兼容的,并采取相应的行动.
代码日志版权声明:
翻译自:http://stackoverflow.com/questions/6012911/what-resource-does-a-key-lock-actually-lock
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法设计与分析基础
Anany Levitin / 清华大学出版社 / 2007-11 / 59.00元
作者基于丰富的教学经验,开发了一套对算法进行分类的新方法。这套方法站在通用问题求解策略的高度,能对现有的大多数算法进行准确分类,从而使读者能够沿着一条清晰的、一致的、连贯的思路来探索算法设计与分析这一迷人领域。本书作为第2版,相对第1版增加了新的习题,还增加了“迭代改进”一章,使得原来的分类方法更加完善。 本书十分适合作为算法设计和分析的基础教材,也适合任何有兴趣探究算法奥秘的读者使用,只要......一起来看看 《算法设计与分析基础》 这本书的介绍吧!