/*
在CBO时代,一个SQL的执行计划是多样的。影响执行计划的因素也从过去RBO时代的SQL书写规则变为综合性因素。这为我们生成更加优秀执行计划提供了基础,同时也给我们进行调优带来的很多麻烦。
目前我们通常的做法,是通过AWR报告或者调试手段,发现某某SQL有问题,之后从Library Cache(或者AWR)中抽取出执行计划。同时相对应的各种统计信息也需要手工收集。
在MOS[ID 1366133.1]中,发现一个Oracle非公开使用的脚本,可以帮助我们一次性的将执行SQL相关的健康信息全部收集,并且输出为HTML格式文件。本篇就介绍这个脚本工具,也当作是一种推广。
*/
--查询SQL
Select /*+ demo */
emp.empno, emp.ename, dept.dname
From emp, dept
Where emp.deptno = dept.deptno;
--查询SQL ID
select sql_id from v$sqlarea where sql_text like 'Select /*+ demo */%';
SQL_ID
00m9wr7pcsv28
8b6c8yj3tfs3v
--切换用户
conn sys/sys as sysdba;
@E:\sqlhc.sql
输入 N
输入 00m9wr7pcsv28
--输出报告