1

我在 sybase 指南中阅读了以下似乎相互矛盾的陈述。由于我是数据库调优的新手,在协调这些方面提供任何帮助将不胜感激。

1.如果您的环境需要大量插入,请不要将聚集索引键放置在稳步增加的值上,例如 IDENTITY 列。

2.聚集索引在范围查询中key与搜索参数匹配时提供了非常好的性能,例如:where colvalue >= 5 and colvalue < 10

4

2 回答 2

0

这些陈述并不相互矛盾。

第一条语句将INSERTS处理到表中。如果您有一个自动递增的 IDENTITY 列,则聚集索引会增加开销而没有太多好处。(请记住,聚集索引根据索引键保持数据有序...如果您的索引键是IDENTITY列,那么它已经保持有序)

第二个语句处理SEARCHES。在检索数据以进行读取/更新时,如果搜索键与聚集索引匹配,则索引可以提高性能。

这就是为什么重要的是要了解您希望在数据库中看到什么样的活动,以了解您是否需要针对插入、更新或搜索进行调整,因为这将影响您是使用集群索引还是非集群索引或它们的组合。

于 2013-03-27T18:29:45.323 回答
0

那是因为如果您在标识列上创建聚集索引,则插入只会发生在一页。如果有多个进程,那么这些进程将相互阻塞,因为每个进程都会尝试在最后一页上获得 LOCK。

聚集索引的优点之一是它们将 INSERTS 分散到整个表中,这对于防止在这种多进程环境中的阻塞非常有利。

于 2013-08-25T16:48:11.017 回答