当前位置:Linux教程 - Oracle - ORACLE 优化SQL执行效能的几点常识。

ORACLE 优化SQL执行效能的几点常识。



         优化SQL执行效能的几点常识。
    我想大家都知道,优化数据库的执行效能是一个专门的技术,Oracle有这方面专门的图书,如Oracle Tunning Tec.本文只涉及了很少的一部分--优化SQL的一些小常识。

    1)不知大家是否喜欢使用‘NOT IN’这样的操作,如果是,那尽量使用(NOT) EXISTS 替代

    例子:
    语句1

    SELECT dname, deptno

    FROM dept

    WHERE deptno NOT IN

    (SELECT deptno FROM emp);

    语句2

    SELECT dname, deptno

    FROM dept

    WHERE NOT EXISTS

    (SELECT deptno

    FROM emp

    WHERE dept.deptno = emp.deptno);

    明显的,2要比1的执行性能好很多

    因为1中对emp进行了full table scan,这是很浪费时间的操作。而且1中没有用到emp的index,

    因为没有where子句。而2中的语句对emp进行的是range scan。



    2)在海量查询时尽量少用格式转换。

    如用

    WHERE a.order_no = b.order_no

    而不用

    WHERE TO_NUMBER (substr(a.order_no, instr(b.order_no, \.\) - 1)

    = TO_NUMBER (substr(a.order_no, instr(b.order_no, \.\) - 1)




    3)查询海量数据是,可以使用optimizer hints,例如/*+ORDERED */



    SELECT /*+ FUL

    发布人:Crystal 来自:LinuxAid 专业技术支�