display:显示最近执行的SQL语句的执行计划。 display_cursor:根据SQL语句的ID或哈希值以及子游标编号,显示特定的执行计划。 display_awr:根据SQL语句的ID,显示AWR(Automatic Workload Repository)中收集的执行计划。 三、DBMS_XPLAN的应用场景 使用display方法查看最近执行的SQL语句的执行计划 EXPLAIN PLAN FOR SELECT * ...
1.DISPLAY 2.DISPLAY_AWR 3.DISPLAY_CURSOR 4.DISPLAY_PLAN 5.DISPLAY_SQL_PLAN_BASELINE 6.DISPLAY_SQLSET 下面将重点讨论关于DBMS_XPLAN包在解释计划和执行计划上的应用。 来看一个经常使用的查看某条语句的解释计划示例: 复制代码代码如下: SQL> explain plan for select * from scott.emp; Explained. SQL> ...
select * from table(dbms_xplan.display_cursor('XXXXXXX')); --清理全局shared_pool; alter system flush shared_pool; AWR/ASH管理 此节只简单的提及到AWR相关的设置,和怎么获取相关报告。详细的可参考Managing the Automatic Workload Repository和Automatic Performance Diagnostics。 设置awr(CDB级别或者non-CDB)...
3)DISPLAY_AWR SQL>select sql_id, to_char(substr(sql_text,0,2000)) fromdba_hist_sqltext whereupper(sql_text) like 'SELECT * FROM TEST%'; SQL>select * fromtable(dbms_xplan.display_awr('&sql_id')); --注: 1.DISPLAY_AWR 函数显示存储在AWR历史数据的执行计划。 2.须对以下视图有SELECT...
1.DISPLAY_AWR 函数显示存储在AWR历史数据的执行计划。 2.须对以下视图有SELECT权限:DBA_HIST_SQL_PLAN 和DBA_HIST_SQLTEXT。 3.参数: 1)SQL_ID :可以从DBA_HIST_SQL_PLAN.SQL_ID或DBA_HIST_SQLTEXT.SQL_ID 获得,该参数必须指定非空值,没有默认值; ...
(4) select * from table(dbms_xplan.display_awr('sql_id')); (1)是使用explain plan for +SQL作为前提,(2)和(3)的前提则是SQL的执行计划还在共享池中,具体讲是在库缓存中。如果已经被age out交换出共享池,则不能用这两种方法了。若该SQL的执行计划被采集到AWR库中,则可以用(4)来查询历史执行计划。
oracle awr 可以在awr中看到绑定变量的具体值 select plan_table_output from table (dbms_xplan.display_awr(‘ckc0unuavzjrf’,null, null, ‘ADVANCED +PEEKED_BINDS’)) V_$SQL_BIND_DATA SELECT dbms_sqltune.extract_bind(bind_data,).value_string1,...
SELECT * FROM table(DBMS_XPLAN.DISPLAY_AWR('sql_id', 'plan_hash_value')); ``` 其中,'sql_id'和'plan_hash_value'为待查询SQL语句的ID和计划哈希值。这条SQL语句会返回该SQL语句的执行计划,以及在AWR中存储的执行统计数据。 3. 查询等待事件信息 等待事件是影响数据库性能的一个重要因素,AWR存储了数...
如果通过AWR已经获取了SQL_ID,则可以直接得到执行计划: select * from table(dbms_xplan.display_awr('sql_id')); select * from table(dbms_xplan.display_cursor('sql_id',null,'ADVANCED ALLSTATS LAST PEEKED_BINDS')); 查看SQL的历史执行计划: ...
3.select * from table(dbms_xplan.display_cursor('sql_id/hash value',child_cursor_number,'advanced')); 4.select * from table(dbms_xplan.display_awr('sql_id‘)); 方法1本质上就是和方法一是一样的,在这里不再说明。 方法2用于SQLPLUS中查看刚刚执行过的SQL的执行计划,直接跟在刚执行过的SQL 语...