Oracle 包需要返回查询的执行计划和统计信息
假设我在sql plus中执行脚本,如下所示Oracle 包需要返回查询的执行计划和统计信息,oracle,plsql,oracle11gr2,Oracle,Plsql,Oracle11gr2,假设我在sql plus中执行脚本,如下所示 sql>set autotrace traceonly; sql>select * from employees; Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer Mode=ALL_ROWS (Cost=2 Card=14 Bytes=1 K) 1
sql>set autotrace traceonly;
sql>select * from employees;
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer Mode=ALL_ROWS (Cost=2 Card=14 Bytes=1 K)
1 0 TABLE ACCESS FULL T416493.EMPLOYEE (Cost=2 Card=14 Bytes=1 K)
Statistics
----------------------------------------------------------
6 user calls
0 physical read total multi block requests
0 physical read total bytes
0 cell physical IO interconnect bytes
0 commit cleanout failures: block lost
0 IMU commits
0 IMU Flushes
0 IMU contention
0 IMU bind flushes
0 IMU mbu flush
14 rows processed
我正在创建一个包,我在其中传递查询,它将为我提供带有此统计信息的执行计划。我如何实现此is包?这里是DMBS\u XPLAN的基本包装
CREATE OR REPLACE PROCEDURE print_plan(p_sql IN VARCHAR2)
IS
BEGIN
EXECUTE IMMEDIATE 'explain plan for '||p_sql;
FOR r_plan IN (SELECT *
FROM table(DBMS_XPLAN.DISPLAY))
LOOP
dbms_output.put_line(r_plan.plan_table_output);
END LOOP;
END;
/
BEGIN
print_plan('select 1 from dual');
END;
/
看看DBMS_XPLAN包,还有表SYS.PLAN_table$和PUBLIC.PLAN_table视图。到目前为止,您有什么发现?PUBLIC.PLAN_table是同义词,不是视图。啊@tbone:我现在是空白:),不知道如何在您的过程中得到它,为查询运行解释计划,并使用dbms_xplan显示结果(计划和统计)。有关使用dbms\u xplan的更多信息,请参阅。我对统计感兴趣,我在问题中所展示的内容,谢谢