例子中的where条件是id=200,只对复合B树索引的第二列id指定了查询条件,并没有对索引的前导列name指定任何查询条件。这里没有指定前导列的情况下还能使用上索引,是因为oracle自动对该索引的前导列的所有distinct值做了遍历。
从例子中分析的过程看,oracle中的索引跳跃式扫描仅仅适用于那些目标索引前导列的distinct值数量较少,后续非前导列的可选择性又非常好的情况。因为索引跳跃式扫描的执行效率一定会随着目标索引前导列的distinct值数量的递增而递减。
例子中的where条件是id=200,只对复合B树索引的第二列id指定了查询条件,并没有对索引的前导列name指定任何查询条件。这里没有指定前导列的情况下还能使用上索引,是因为oracle自动对该索引的前导列的所有distinct值做了遍历。
从例子中分析的过程看,oracle中的索引跳跃式扫描仅仅适用于那些目标索引前导列的distinct值数量较少,后续非前导列的可选择性又非常好的情况。因为索引跳跃式扫描的执行效率一定会随着目标索引前导列的distinct值数量的递增而递减。
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://www.heiqu.com/0ebd77ad11e05ce3ff277bc23e6d6319.html