Oracle查看执行计划(四)
如果目标SQL的执行计划被刷出了shared_pool,就需要使用dbms_xplan.display_awr来查看历史执行计划了。语法:select * from table(dbms_xplan.display_awr('sql_id')); SQL> conn hr/hrConnected. --先清空共享池SQL> alter system flush shared_pool; System altered. SQL> select employee_id,last_...
Oracle查看执行计划(三)
如果某条SQL已经执行过了,且其执行计划还在内存中,则后续可以使用dbms.xplan.display_cursor来查看。语法:select * from table(dbms_xplan.display_cursor('sql_id/hash_values',child_cursor_number,'advanced')); SQL> select employee_id,last_name,salary from employees where employee_id=100; EMPLOYEE_ID LAST_N...
Oracle查看执行计划(二)
如果使用sqlplus,可以使用set autotrace命令来得到后续执行sql的执行计划。语法如下:SET AUTOT[RACE] {OFF|ON|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]] SQL> set autotrace traceonly--以上表示只生成执行计划,不将SQL结果显示出来。SQL> select employee_id,last_name,salary from employees...
Oracle查看执行计划(一)
Oracle中有很多查看SQL执行计划的方法,先来看最简单的方法。如果使用PL/SQL Developer,而直接按F5就会出来对应SQL的执行计划。如果使用sqlplus,则使用如下方法获取的执行计划与以上使用PL/SQL Developer获取的执行计划相同。SQL> explain plan for select employee_id,last_name,salary from employees where employee_i...