![](/img/trans.png)
[英]Does clustered index on foreign key column increase join performance vs non-clustered?
[英]Sybase: Does the column order in a non-clustered index affect insert performance?
更具体地说(由于对该主题的一般回答可能是“是”):
在Sybase中,我们有一个包含大量数据的表。
列之一是“插入日期”(DATE,日期时间类型)。
表上的聚集索引以“ DATE”开头。
问题:对于另一个非聚集索引,列的顺序(更具体地说,“ DATE”是第一还是第二索引列)是否会影响插入查询的性能?
假设其他所有条件都相等,例如第二个非聚集索引的顺序不会影响选择查询的性能 (即使这样,我也不关心这个问题的目的)。
表“所有页”或“数据页”上有哪些锁定方案? (您可以通过选择lockscheme('table_name'来查找。)使用数据页锁定方案,索引维护的(应用程序观察到的)性能要好得多。
索引已排序。 插入时间取决于维护该订单的成本。 如果您插入的行的索引值单调递增,则索引将“在末尾”增长,并且性能会很好(对由于多个并发更新程序而导致的并发问题进行模运算)。 索引树将不时需要重新平衡,但是我认为这是一个快速的操作。
如果插入顺序与索引顺序不同,则该索引必须将条目“插入中间”,这很可能导致页面拆分(通过设置填充,因子)和“索引碎片”
无论如何,答案(一如既往)是进行一些实验并测量经过的时间和IO活动。 您可能还需要查看optdiag输出。
pjjH
我认为,这很大程度上取决于索引中的填充因子,而在很大程度上,取决于列的选择性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.