ORACLE SQL执行计划

Posted diuxie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE SQL执行计划相关的知识,希望对你有一定的参考价值。

--explain查看SQL执行计划

EXPLAIN PLAN FOR select count(*) from steven.AWEN_OGG_TEST;

select * from table(dbms_xplan.display());

--查看AWR和CURSOR中的执行计划

select * from table(dbms_xplan.display_awr(\'&sqlid\'));

select * from table(dbms_xplan.display_cursor(\'&sqlid\'));

--查看游戏代理中内存中的执行计划

select \'| Operation |Object Name | Rows | Bytes| Cost |\'

as "Explain Plan in library cache:" from dual

union all

select rpad(\'| \'||substr(lpad(\' \',1*(depth-1))||operation||

decode(options, null,\'\',\' \'||options), 1, 35), 36, \' \')||\'|\'||

rpad(decode(id, 0, \'----------------------------\',

substr(decode(substr(object_name, 1, 7), \'SYS_LE_\', null, object_name)

||\' \',1, 30)), 31, \' \')||\'|\'|| lpad(decode(cardinality,null,\' \',

decode(sign(cardinality-1000), -1, cardinality||\' \',

decode(sign(cardinality-1000000), -1, trunc(cardinality/1000)||\'K\',

decode(sign(cardinality-1000000000), -1, trunc(cardinality/1000000)||\'M\',

trunc(cardinality/1000000000)||\'G\')))), 7, \' \') || \'|\' ||

lpad(decode(bytes,null,\' \',

decode(sign(bytes-1024), -1, bytes||\' \',

decode(sign(bytes-1048576), -1, trunc(bytes/1024)||\'K\',

decode(sign(bytes-1073741824), -1, trunc(bytes/1048576)||\'M\',

trunc(bytes/1073741824)||\'G\')))), 6, \' \') || \'|\' ||

lpad(decode(cost,null,\' \', decodewww.walajiao.com(sign(cost-10000000), -1, cost||\' \',

decode(sign(cost-1000000000), -1, trunc(cost/1000000)||\'M\',

trunc(cost/1000000000)||\'G\'))), 8, \' \') || \'|\' as "Explain plan"

from v$sql_plan sp

where sp.hash_value=&hash_value or sp.sql_id=\'&sqlid\';

--查看历史执行计划

select distinct SQL_ID,PLAN_HASH_VALUE,to_char(TIMESTAMP,\'yyyymmdd hh24:mi:ss\') TIMESTAMP

from dba_hist_sql_plan

where SQL_ID=\'&sqlid\' order by TIMESTAMP;

以上是关于ORACLE SQL执行计划的主要内容,如果未能解决你的问题,请参考以下文章

在Oracle中启用AutoTrace查看SQL执行计划

oracle选择了错误的执行计划,怎么办

Oracle里的执行计划

如何解析oracle执行计划

ORACLE SQL执行计划

Oracle如何查看执行计划