繁体   English   中英

Sybase:非聚集索引中的列顺序是否会影响插入性能?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM