我有一张桌子,其中有很多列,总的最大尺寸大大超过8k的边界。这个表包含一个ModuleID列,它基本上告诉你它是什么类型的对象(不用担心 - 我没有设计这个),其中可能有15个不同的值。然后它有一个称为propertyID的唯一列,它也是一个IDENTITY(1,1),然后由SQL Server增加。在ModuleID上有一个聚集索引,这个值对于选择总是已知的,因为使用了propertyID(moduleID很少在这里是范围)。表格包含数百万行。非唯一集群密钥是否会增加页级锁定的可能性?
关于INSERT,我的问题是这样的:
a)非唯一聚集键是否增加了SQL Server持有独占页面级锁而不是KEY(行)锁的可能性?
b)将聚簇键更改为增加的唯一属性ID将使SQL Server能够保存专有的KEY锁,而这些总是会进入聚簇索引的最后一页?
表格是否(在某些安装中)在moduleID上进行分区会改变您的答案?
谢谢马克,我忘记了那个独特的人。但它是一个序列?如果上面的propertyID已经是聚簇键,则新的插入将转到索引的最后一页。这是唯一的例子吗?我试图找出如何减少插入的可能性,如果聚集键可以在这个角色扮演一个角色。或者,页面锁定可能性只是我想要在行中保存多少数据的函数? – Tinkerer 2010-09-28 07:41:19