我们都知道甲骨文的心田报告是一个很强大的功能通过分析心田报告可以打出甲骨文数据运行过程中出现的问题和可能存在的隐患。但是心田报告中没有关于单个SQL执行计划,统计信息的详细描述,但不代表心田;不能提供这种功能。
本文介绍的是如何使用的心田报告生成一条SQL的详细执行统计报告。
实验环境11.2.0.4
1,调整的心田关于SQL收集的设置,调整的目的是因为默认情况下心田;并非捕获所有的SQL语句,此调整是为了让心田;可以收集实验过程中的SQL语句
zx@ORCL> select *,得到dba_hist_wr_control; ,,,,,DBID snap_interval,,,,,,,,保留,TOPNSQL - - - - - - - - - - -,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -女人,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -女人,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1444351641,+ 00000,01:00:00.0,,,,,,,+ 00008,00:00:00.0,,默认 zx@ORCL> exec  dbms_workload_repository.modify_snapshot_settingS (topnsql=在“最大”); PL/SQL procedure  successfully 完成。 zx@ORCL> select *,得到dba_hist_wr_control; ,,,,,DBID snap_interval,,,,,,,,保留,TOPNSQL - - - - - - - - - - -,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -女人,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -女人,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1444351641,+ 00000,01:00:00.0,,,,,,,+ 00008,00:00:00.0,,,最大的
2,手工创建一个心田快照
zx@ORCL> exec dbms_workload_repository.create_snapshot; PL/SQL procedure  successfully 完成。
3,创建测试表并在不同情况下执行测试sql,并找到测试sql的sql_id
zx@ORCL> create table t as select *,得到dba_objects; Table 创建。 zx@ORCL> create  unique index  idx_unique_t 提醒t (object_id); Index 创建。 zx@ORCL> exec  dbms_stats.gather_table_stats(用户、“T”,级联=祝辞真实); PL/SQL procedure  successfully 完成。 zx@ORCL> select  object_name 得到t where object_id=123; OBJECT_NAME - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 生态美元 zx@ORCL> select  sql_id sql_text 得到v $ sql where sql_text=钡玫絫 获select object_name ; where  object_id=123”; sql_id sql_text - - - - - - - - - - - - - - - - - -女人,,,,,,,,,,,,,,,,,,,,,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 dymmcx3kf7h2 select object_name 得到t where object_id=123
4,再次手工生成的心田快照
zx@ORCL> exec dbms_workload_repository.create_snapshot; PL/SQL procedure  successfully 完成。
5,使用awrsqrpt。sql脚本生成对于sql_id=2 dymmcx3kf7h2的sql的详细统计信息。过程与生成awrrpt类似,不同的是需要指定要生成报告的sql_id
zx@ORCL> @吗?/rdbms/admin/awrsqrpt Current 实例 ~~~~~~~~~~~~~~~~ ,,DB Id ,,, DB 名字,Inst Num 实例 - - - - - - - - - - -安康;- - - - - - - - - - - -,- - - - - - - - - -,- - - - - - - - - - - - ,1444351641 orcl 1 orcl Specify 从而,Report 类型 ~~~~~~~~~~~~~~~~~~~~~~~ Would 你;like  an HTML 报告,趁机a plain text 报告吗? Enter “html”, for an HTML 报告,“文本”,趁机for plain 文本 Defaults 用“html” Enter value  for report_type:文本 Type 指定:,文本 Instances 却;能够拷贝Workload Repository 模式 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ,,DB Id ,,,, Inst Num DB 名字,,,主机实例 - - - - - - - - - - - -,- - - - - - - - - -,- - - - - - - - - - - -,- - - - - - - - - - - -,- - - - - - - - - - - - *,1444351641,,,,1,李艾科,,,orcl rhel6 Using 1444351641, for database Id 用,,,,,,,1,for instance 数字 Specify 从而,number of days  of snapshots 用choose 从 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Entering 从而number of  days (n), will result 拷贝,most 最近 (n), days of  snapshots being 只列出,Pressing & lt; return>没有 specifying a  number lists all  completed 快照。 Enter value  for num_days: 1 Listing 从而last 天's  Completed 快照 提前 null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null使用的心田生成一条sql的执行统计报告