#ORACLESQL性能优化系列(十) 搜索结果
43.用WHERE替代ORDERBYORDERBY子句只在两种严格的条件下使用索引.ORDERBY中所有的列必须包含在相同的索引中并保持在索引中的排列顺序.ORDERBY中所有的列必须定义为非空.WHERE子句使用的索引和ORDERBY
03-3146.连接多个扫描如果你对一个列和一组有限的值进行比较,优化器可能执行多次扫描并对结果进行合并连接.举例:SELECT*FROMLODGINGWHEREMANAGERIN(‘BILLGATES’,’KENMULLER’);优化器可能将它转换
03-3131.强制索引失效如果两个或以上索引具有相同的等级,你可以强制命令ORACLE优化器使用其中的一个(通过它,检索出的记录数量少).举例:SELECTENAMEFROMEMPWHEREEMPNO=7935ANDDEPTNO+0=10/
03-3139.总是使用索引的第一个列如果索引是建立在多个列上,只有在它的第一个列(leadingcolumn)被where子句引用时,优化器才会选择使用该索引.译者按:这也是一条简单而重要的规则.见以下实例.SQL>createtabl
03-3136.用UNION替换OR(适用于索引列)通常情况下,用UNION替换WHERE子句中的OR将会起到较好的效果.对索引列使用OR将造成全表扫描.注意,以上规则只针对多个索引列有效.如果有column没有被索引,查询效率可能会因为你没有选择OR而
03-31