使用AWR生成一条sql的执行统计报告
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,我们都知道Oracle的AWR报告是一个很强大的功能通过分析AWR报告可以打出Oracle数据运行过程中出现的问题和可能存在的隐患。但是AWR报告中没有关于单个SQL执行计划、统计信息的详细描述,但不
千家信息网最后更新 2025年01月20日使用AWR生成一条sql的执行统计报告
我们都知道Oracle的AWR报告是一个很强大的功能通过分析AWR报告可以打出Oracle数据运行过程中出现的问题和可能存在的隐患。但是AWR报告中没有关于单个SQL执行计划、统计信息的详细描述,但不代表AWR不能提供这种功能。
本文介绍的是如何使用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 DEFAULTzx@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------------------- -----------------------------------------------2dymmcx3kf7h2 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=2dymmcx3kf7h2的sql的详细统计信息。过程与生成awrrpt类似,不同的是需要指定要生成报告的sql_id
zx@ORCL>@?/rdbms/admin/awrsqrptCurrent Instance~~~~~~~~~~~~~~~~ DB Id DB Name Inst Num Instance----------- ------------ -------- ------------ 1444351641 ORCL 1 orclSpecify the Report Type~~~~~~~~~~~~~~~~~~~~~~~Would you like an HTML report, or a plain text report?Enter 'html' for an HTML report, or 'text' for plain textDefaults to 'html'Enter value for report_type: textType Specified: textInstances in this Workload Repository schema~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DB Id Inst Num DB Name Instance Host------------ -------- ------------ ------------ ------------* 1444351641 1 ORCL orcl rhel6Using 1444351641 for database IdUsing 1 for instance numberSpecify 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. Pressingwithoutspecifying a number lists all completed snapshots.Enter value for num_days: 1Listing the last day's Completed Snapshots SnapInstance DB Name Snap Id Snap Started Level------------ ------------ --------- ------------------ -----orcl ORCL 826 15 Feb 2017 09:25 1 827 15 Feb 2017 10:00 1 828 15 Feb 2017 10:00 1 829 15 Feb 2017 10:04 1 830 15 Feb 2017 10:09 1 831 15 Feb 2017 11:00 1 832 15 Feb 2017 11:02 1 833 15 Feb 2017 11:07 1Specify the Begin and End Snapshot Ids~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Enter value for begin_snap: 832Begin Snapshot Id specified: 832Enter value for end_snap: 833End Snapshot Id specified: 833Specify the SQL Id~~~~~~~~~~~~~~~~~~Enter value for sql_id: 2dymmcx3kf7h2SQL ID specified: 2dymmcx3kf7h2Specify the Report Name~~~~~~~~~~~~~~~~~~~~~~~The default report file name is awrsqlrpt_1_832_833.txt. To use this name,press to continue, otherwise enter an alternative.Enter value for report_name: Using the report name awrsqlrpt_1_832_833.txtWORKLOAD REPOSITORY SQL ReportSnapshot Period SummaryDB Name DB Id Instance Inst Num Startup Time Release RAC------------ ----------- ------------ -------- --------------- ----------- ---ORCL 1444351641 orcl 1 15-Feb-17 09:14 11.2.0.4.0 NO Snap Id Snap Time Sessions Curs/Sess --------- ------------------- -------- ---------Begin Snap: 832 15-Feb-17 11:02:01 27 1.3 End Snap: 833 15-Feb-17 11:07:24 29 1.5 Elapsed: 5.38 (mins) DB Time: 0.06 (mins)SQL Summary DB/Inst: ORCL/orcl Snaps: 832-833 Elapsed SQL Id Time (ms)------------- ----------2dymmcx3kf7h2 1Module: SQL*Plusselect object_name from t where object_id=123 -------------------------------------------------------------SQL ID: 2dymmcx3kf7h2 DB/Inst: ORCL/orcl Snaps: 832-833-> 1st Capture and Last Capture Snap IDs refer to Snapshot IDs witin the snapshot range-> select object_name from t where object_id=123 Plan Hash Total Elapsed 1st Capture Last Capture# Value Time(ms) Executions Snap ID Snap ID--- ---------------- ---------------- ------------- ------------- --------------1 3476657867 1 1 833 833 -------------------------------------------------------------Plan 1(PHV: 3476657867)-----------------------Plan Statistics DB/Inst: ORCL/orcl Snaps: 832-833-> % Total DB Time is the Elapsed Time of the SQL statement divided into the Total Database Time multiplied by 100Stat Name Statement Per Execution % Snap---------------------------------------- ---------- -------------- -------Elapsed Time (ms) 1 0.8 0.0CPU Time (ms) 0 0.0 0.0Executions 1 N/A N/ABuffer Gets 3 3.0 0.0Disk Reads 0 0.0 0.0Parse Calls 1 1.0 0.1Rows 1 1.0 N/AUser I/O Wait Time (ms) 0 N/A N/ACluster Wait Time (ms) 0 N/A N/AApplication Wait Time (ms) 0 N/A N/AConcurrency Wait Time (ms) 0 N/A N/AInvalidations 0 N/A N/AVersion Count 1 N/A N/ASharable Mem(KB) 15 N/A N/A -------------------------------------------------------------Execution Plan--------------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |--------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | | | 2 (100)| || 1 | TABLE ACCESS BY INDEX ROWID| T | 1 | 30 | 2 (0)| 00:00:01 || 2 | INDEX UNIQUE SCAN | IDX_UNIQUE_T | 1 | | 1 (0)| 00:00:01 |--------------------------------------------------------------------------------------------Full SQL TextSQL ID SQL Text------------ -----------------------------------------------------------------2dymmcx3kf7h select object_name from t where object_id=123Report written to awrsqlrpt_1_832_833.txt
报告中列出了AWR记录中sql执行的统计信息和执行计划。
参考:http://blog.csdn.net/leshami/article/details/8732708
http://www.linuxidc.com/Linux/2013-01/77196.htm
http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_workload_repos.htm#ARPLS69140
《基于Oracle的SQL优化》
报告
生成
统计
信息
过程
测试
调整
不同
功能
快照
情况
手工
语句
实验
强大
代表
再次
单个
数据
环境
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
立山区浅草网络技术工作室
数据库安全证实验报告
服务器装ubuntu系统
华为网络安全科技有限公司
小米路由r1d打印服务器
大学读网络安全工作好找吗
网络技术和互联网技术的区别
郑州百城软件开发有限公司
泰安市网络安全人才
使用什么软件开发app
手机网络技术发展史
公交移动支付数据库
数据库查询第10到20行
堡垒机 数据库审计
直销软件开发商城开发
plsql数据库格式
阿里云普惠建站服务器
sql数据库还原错误3421
电视找不到服务器
华为手机浏览器网络安全证书
华为服务器管理口v2
欢乐田园活动服务器
ncdb数据库使用指南
ios和安卓通用服务器
ais 数据库
数据库基础与应用的业务处理题
java 数据库预处理
哪能买到arm云手机服务器
mssql 数据库收缩
防诈骗、网络安全教育