范围扫描与唯一扫描与跳过扫描

时间:2013-07-17 21:40:43

标签: sql oracle

独特扫描,范围扫描和跳过扫描是什么意思?  我们可以明确决定使用哪种扫描吗?  所有这些扫描的优点和缺点是什么?

1 个答案:

答案 0 :(得分:10)

这些名字非常明显:

  • “唯一”扫描会扫描唯一索引中的单个值。

  • “范围”扫描从某个起始值开始,并按顺序读取索引条目(i,例如沿着b-tree),直到遇到超过第二个值的值(搜索a非唯一索引上的单个值是范围扫描,BTW)。

  • “跳过”扫描仅使用复合索引的前导列来计算其不同的值(因此,一旦找到值,它就会沿着该索引“跳过”直到找到下一个一个)。

对于给定类型的记录匹配,每个都是合适的(并且是最佳的)。 SQL优化器几乎总是选择最适合给定情况的(如果统计信息是最新的)。