我在sybase指南中阅读了以下语句,这些语句似乎是矛盾的。 由于我是数据库调优的新手,所以在协调这些内容时会感激不尽。
1.如果您的环境需要大量插入,请不要将聚集索引键放在稳定增加的值上,例如IDENTITY列。
2.当密钥与范围查询中的搜索参数匹配时,聚簇索引提供了非常好的性能,例如: 其中colvalue> = 5且colvalue< 10
答案 0 :(得分:0)
这些陈述并不矛盾。
第一个声明将 INSERTS 处理成表格。如果您具有自动增量IDENTITY列,则聚簇索引会增加开销而不会带来很多好处。 (请记住,聚集索引会根据索引键保持数据的顺序...如果您的索引键是 IDENTITY 列,那么它已经按顺序保存)
第二个声明涉及 SEARCHES 。检索数据以进行读取/更新时,如果搜索关键字与聚簇索引匹配,则索引可以提高性能。
这就是为什么了解您希望在数据库中看到哪种活动以了解是否需要调整插入,更新或搜索,这一点很重要,因为这将影响您是否将使用Clustered与Non-聚集索引或其组合。
答案 1 :(得分:0)
那是因为如果在标识列上创建聚簇索引,则插入只会发生一页。如果有多个进程,那么进程将只是相互阻塞,因为每个进程都会尝试在最后一页上获得LOCK。
聚簇索引的一个优点是它们将INSERTS扩展到整个表中,这对于防止在这样的多进程环境中阻塞非常有利。