设为首页 加入收藏

TOP

使用AWR生成一条SQL的执行统计报告(一)
2017-02-18 08:15:18 】 浏览:454
Tags:使用 AWR 生成 SQL 执行 统计 报告

本文介绍的是如何使用AWR报告生成一条sql的详细执行统计报告。


实验环境11.2.0.4


1、调整AWR关于SQL收集的设置,调整的目的是因为默认情况下AWR并非捕获所有的sql语句,此调整是为了让AWR可以收集实验过程中的SQL语句


zx@ORCL>select * from dba_hist_wr_control;
?
? ? ? DBID SNAP_INTERVAL? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? RETENTION? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TOPNSQL
---------- --------------------------------------------------------------------------- --------------------------------------------------------------------------- ------------------------------
1444351641 +00000 01:00:00.0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? +00008 00:00:00.0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? DEFAULT
?
zx@ORCL>exec dbms_workload_repository.modify_snapshot_settingS(topnsql=>'MAXIMUM');
?
PL/SQL procedure successfully completed.
?
zx@ORCL>select * from dba_hist_wr_control;
?
? ? ? DBID SNAP_INTERVAL? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? RETENTION? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TOPNSQL
---------- --------------------------------------------------------------------------- --------------------------------------------------------------------------- ------------------------------
1444351641 +00000 01:00:00.0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? +00008 00:00:00.0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? MAXIMUM


2、手工创建一个AWR快照


zx@ORCL>exec dbms_workload_repository.create_snapshot;
?
PL/SQL procedure successfully completed.


3、创建测试表并在不同情况下执行测试sql,并找到测试sql的sql_id


zx@ORCL>create table t as select * from dba_objects;
?
Table created.
?
zx@ORCL>create unique index idx_unique_t on t(object_id);
?
Index created.
?
zx@ORCL>exec dbms_stats.gather_table_stats(USER,'T',CASCADE=>TRUE);
?
PL/SQL procedure successfully completed.
?
zx@ORCL>select object_name from t where object_id=123;
?
OBJECT_NAME
------------------------------
ECOL$
?
zx@ORCL>select sql_id,sql_text from v$sql where sql_text='select object_name from t where object_id=123';
?
SQL_ID? ? ? ? ? ? ? ? ? SQL_TEXT
-------------------? ? ? ? ? ? ? ? ? ? -----------------------------------------------
2dymmcx3kf7h1? ? ? ? ? ? ? select object_name from t where object_id=123


4、再次手工生成AWR快照


zx@ORCL>exec dbms_workload_repository.create_snapshot;
?
PL/SQL procedure successfully completed.


5、使用awrsqrpt.sql脚本生成对于sql_id=2dymmcx3kf7h1的sql的详细统计信息。过程与生成awrrpt类似,不同的是需要指定要生成报告的sql_id


zx@ORCL>@?/rdbms/admin/awrsqrpt
?
Current Instance
~~~~~~~~~~~~~~~~
?
? DB Id? ? DB Name? ? Inst Num Instance
----------- ------------ -------- ------------
?1444351641 ORCL? ? ? 1 orcl
?
?
Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Would you like an HTML report, or a plain text report?
Enter 'html' for an HTML report, or 'text' for plain text
Defaults to 'html'
Enter value for report_type: text
?
Type Specified:? ? ? ? ? ? ? ? text
?
?
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
?
? DB Id? ? Inst Num DB Name? ? ? Instance? Host
------------ -------- ------------ ------------ ------------
* 1444351641? ? ? 1 ORCL? ? orcl? ? rhel6
?
Using 1444351641 for database Id
Using? ? ? ? ? 1 for instance number
?
?
Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed.? Pressing without
specifying a number lists all completed snapshots.
?
?
Enter value for num_days: 1
?
Listing the last day's Completed Snapshots
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? Snap
Instance? ? DB Name? ? ? Snap Id? ? Snap Started? ? Level
------------ ------------ --------- ------------------ -----
orcl? ? ? ? ORCL? ? ? 826 15 Feb 2017 09

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Oracle 12C R2单实例在RHEL7.2安装 下一篇SQL Server 急救包(First Respon..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目