本文转自mos,中文版( 1359094.1),留存,后续整理测试:
文档内容
|
|
目标 |
|
|
最佳实践 |
|
|
如何主动避免问题发生及做好诊断信息的收集 |
|
|
提出问题、获取帮助并分享您的经验 |
|
|
解决方案 |
|
|
Interpretation |
|
|
Top 5 Timed Events |
|
|
SQL Statistics |
|
|
分析: |
|
|
Other SQL Statistic Sections |
|
|
Waits for 'Cursor: mutex/pin' |
|
|
Load Profile |
|
|
Instance Efficiency |
|
|
Latch Activity |
|
|
值得注意的wait events |
|
|
CPU time events |
|
|
Analysis: |
|
|
其他潜在的CPU相关的问题: |
|
|
检查是否有其他等待事件与高CPU 事件同时出现 |
|
|
数据库以外的CPU使用率过高 |
|
|
诊断CPU使用率 |
|
|
'Log file sync' waits |
|
|
Buffer busy waits |
|
|
诊断其他问题 |
|
|
使用ADDM的报告 |
|
|
其他的AWR参考文章 |
|
|
Statspack |
|
|
参考 |
Oracle Database - Enterprise Edition - 版本 10.2.0.1 和更高版本
Oracle Database Exadata Cloud Machine - 版本 N/A 和更高版本
Oracle Cloud Infrastructure - Database Service - 版本 N/A 和更高版本
Oracle Database Cloud Exadata Service - 版本 N/A 和更高版本
Oracle Database Exadata Express Cloud Service - 版本 N/A 和更高版本
本文档所含信息适用于所有平台
本文旨在提供如何解释跟数据库性能问题息息相关的AWR信息。
需要注意的是生成 AWR Report 或访问 AWR 相关的视图,以及使用任何 AWR 相关的诊断信息,都需要额外的 Diagnostic Pack License。这包括生成 AWR/ADDM/ASH report,也包括当技术支持要求的生成上述报表时。
注意: Oracle Diagnostics Pack (以及 Oracle Tuning Pack) 只在企业版中提供。
详见:
Oracle® Database Licensing Information
12c Release 1 (12.1)
Part number E17614-08
Chapter 1 1 Oracle Database Editions
Feature Availability by Edition
有些问题是无法预见的,但大部分其它的问题如果及早发现一些征兆其实是可以避免的。同时,如果问题确实发生了,那么收集问题发生时的信息就非常重要。有关于如何主动避免问题及诊断信息的收集,请参见:
您想要与其他 Oracle 客户、Oracle 员工及业内专家深入探讨吗?
Click here to join the discussion where you can ask questions, get help from others, and share your experiences with this specific article.
点击
访问
My Oracle Support Community 数据库性能优化页,在这里您可以提出问题、获取他人的帮助并分享您的经验。
对于数据库整体的性能问题,AWR的报告是一个非常有用的诊断工具。
一般来说,当检测到性能问题时,我们会收集覆盖了发生问题的时间段的AWR报告-但是最好只收集覆盖1个小时时间段的AWR报告-如果时间过长,那么AWR报告就不能很好的反映出问题所在。
还应该收集一份没有性能问题的时间段的AWR报告,作为一个参照物来对比有问题的时间段的AWR报告。这两个AWR报告的时间段应该是一致的,比如都是半个小时的,或者都是一个小时的。
关于如何收集AWR报告,请参照如下文档:
在处理性能问题时,我们最关注的是数据库正在等待什么。
当进程因为某些原因不能进行操作时,它需要等待。花费时间最多的等待事件是我们最需要关注的,因为降低它,我们能够获得最大的好处。
AWR报告中的"Top 5 Timed Events"部分就提供了这样的信息,可以让我们只关注主要的问题。
Top 5 Timed Events Avg %Total ~~~~~~~~~~~~~~~~~~ wait Call Event Waits Time (s) (ms) Time Wait Class ------------------------------ ------------ ----------- ------ ------ ---------- db file scattered read 10,152,564 81,327 8 29.6 User I/O db file sequential read 10,327,231 75,878 7 27.6 User I/O CPU time 56,207 20.5 read by other session 4,397,330 33,455 8 12.2 User I/O PX Deq Credit: send blkd 31,398 26,576 846 9.7 Other -------------------------------------------------------------
Tablespace IO Stats DB/Inst: VMWREP/VMWREP Snaps: 1-15 -> ordered by IOs (Reads + Writes) desc Tablespace ------------------------------ Av Av Av Av Buffer Av Buf Reads Reads/s Rd(ms) Blks/Rd Writes Writes/s Waits Wt(ms) -------------- ------- ------ ------- ------------ -------- ---------- ------ TS_TX_DATA 14,246,367 283 7.6 4.6 145,263,880 2,883 3,844,161 8.3 USER 204,834 4 10.7 1.0 17,849,021 354 15,249 9.8 UNDOTS1 19,725 0 3.0 1.0 10,064,086 200 1,964 4.9 AE_TS 4,287,567 85 5.4 6.7 932 0 465,793 3.7 TEMP 2,022,883 40 0.0 5.8 878,049 17 0 0.0 UNDOTS3 1,310,493 26 4.6 1.0 941,675 19 43 0.0 TS_TX_IDX 1,884,478 37 7.3 1.0 23,695 0 73,703 8.3 >SYSAUX 346,094 7 5.6 3.9 112,744 2 0 0.0 SYSTEM 101,771 2 7.9 3.5 25,098 0 653 2.7
SQL ordered by Gets
-> Resources reported for PL/SQL code includes the resources used by all SQL
statements called by the code.
-> Total Buffer Gets: 4,745,943,815
-> Captured SQL account for 122.2% of Total
Gets CPU Elapsed
Buffer Gets Executions per Exec %Total Time (s) Time (s) SQL Id
-------------- ------------ ------------ ------ -------- --------- -------------
1,228,753,877 168 7,314,011.2 25.9 8022.46 8404.73 5t1y1nvmwp2
SELECT ADDRESSID",CURRENT$."ADDRESSTYPEID",CURRENT$URRENT$."ADDRESS3",
CURRENT$."CITY",CURRENT$."ZIP",CURRENT$."STATE",CURRENT$."PHONECOUNTRYCODE",
CURRENT$."PHONENUMBER",CURRENT$."PHONEEXTENSION",CURRENT$."FAXCOU
1,039,875,759 62,959,363 16.5 21.9 5320.27 5618.96 grr4mg7ms81
Module: DBMS_SCHEDULER
INSERT INTO "ADDRESS_RDONLY" ("ADDRESSID","ADDRESSTYPEID","CUSTOMERID","
ADDRESS1","ADDRESS2","ADDRESS3","CITY","ZIP","STATE","PHONECOUNTRYCODE","PHONENU
854,035,223 168 5,083,543.0 18.0 5713.50 7458.95 4at7cbx8hnz
SELECT "CUSTOMERID",CURRENT$."ISACTIVE",CURRENT$."FIRSTNAME",CURRENT$."LASTNAME",CU<
RRENT$."ORGANIZATION",CURRENT$."DATEREGISTERED",CURRENT$."CUSTOMERSTATUSID",CURR
ENT$."LASTMODIFIEDDATE",CURRENT$."SOURCE",CURRENT$."EMPLOYEEDEPT",CURRENT$.Load Profile ~~~~~~~~~~~~ Per Second Per Transaction --------------- --------------- Redo size: 4,585,414.80 3,165,883.14 Logical reads: 94,185.63 65,028.07 Block changes: 40,028.57 27,636.71 Physical reads: 2,206.12 1,523.16 Physical writes: 3,939.97 2,720.25 User calls: 50.08 34.58 Parses: 26.96 18.61 Hard parses: 1.49 1.03 Sorts: 18.36 12.68 Logons: 0.13 0.09 Executes: 4,925.89 3,400.96 Transactions: 1.45 % Blocks changed per Read: 42.50 Recursive Call %: 99.19 Rollback per transaction %: 59.69 Rows per Sort: 1922.64
Instance Efficiency Percentages (Target 100%) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Buffer Nowait %: 99.91 Redo NoWait %: 100.00 Buffer Hit %: 98.14 In-memory Sort %: 99.98 Library Hit %: 99.91 Soft Parse %: 94.48 Execute to Parse %: 99.45 Latch Hit %: 99.97 Parse CPU to Parse Elapsd %: 71.23 % Non-Parse CPU: 99.00
Latch Sleep Breakdown * ordered by misses desc Latch Name ---------------------------------------- Get Requests Misses Sleeps Spin Gets Sleep1 Sleep2 Sleep3 -------------- ----------- ----------- ---------- -------- -------- -------- cache buffers chains 2,881,936,948 3,070,271 41,336 3,031,456 0 0 0 row cache objects 941,375,571 1,215,395 852 1,214,606 0 0 0 object queue header operation 763,607,977 949,376 30,484 919,782 0 0 0 cache buffers lru chain 376,874,990 705,162 3,192 702,090 0 0 0
SQL ordered by CPU Time -> Resources reported for PL/SQL code includes the resources used by all SQL statements called by the code. -> % Total is the CPU Time divided into the Total CPU Time times 100 -> Total CPU Time (s): 56,207 -> Captured SQL account for 114.6% of Total CPU Elapsed CPU per % Total Time (s) Time (s) Executions Exec (s) % Total DB Time SQL Id ---------- ---------- ------------ ----------- ------- ------- ------------- 20,349 24,884 168 121.12 36.2 9.1 7bbhgqykv3cm9 Module: DBMS_SCHEDULER DECLARE job BINARY_INTEGER := :job; next_date TIMESTAMP WITH TIME ZONE := :myda te; broken BOOLEAN := FALSE; job_name VARCHAR2(30) := :job_name; job_subname VARCHAR2(30) := :job_subname; job_owner VARCHAR2(30) := :job_owner; job_start TIMESTAMP WITH TIME ZONE := :job_start; job_scheduled_start TIMESTAMP WITH TIME
关于其他性能问题,请参照文档:
当分析性能问题时,除了AWR报告,我们还可以同时参照ADDM报告,对于潜在的性能问题,它同时提供了具体的解决方案建议。下面是从如下文档拿到的一个ADDM报告示例:
Example Output:
ADDM报告相比AWR报告来说,它提供了可读性更好的建议;当然应该同时参照ADDM报告和AWR报告来得到更准确地诊断。
当阅读AWR报告的其他部分时,可以参照下面的一些文档:
AWR报告取代了旧有的staspack及bstat/estat报告,下面的这些文档概述了如何阅读statspack报告:
Additional information can be found in the following articles:
NOTE:271196.1
- Automatic SQL Tuning and SQL Profiles
NOTE:276103.1
- Performance Tuning Using Advisors and Manageability Features: AWR, ASH, ADDM and SQL Tuning Advisor
NOTE:34405.1
- WAITEVENT: "buffer busy waits" Reference Note
NOTE:250655.1
- How to Use the Automatic Database Diagnostic Monitor
NOTE:223117.1
- Troubleshooting I/O Related Waits
NOTE:1482811.1
- Best Practices: Proactively Avoiding Database and Query Performance Issues
NOTE:1477599.1
- Best Practices: Proactive Data Collection for Performance Issues
NOTE:34592.1
- WAITEVENT: "log file sync" Reference Note
NOTE:413942.1
- How to Identify Which Latch is Associated with a "latch free" wait
NOTE:433472.1
- OS Watcher For Windows (OSWFW) User Guide
NOTE:1356828.1
- FAQ: 'cursor: mutex ..' / 'cursor: pin ..' / 'library cache: mutex ..' Type Wait Events
NOTE:1363422.1
- Automatic Workload Repository (AWR) Reports - Main Information Sources
NOTE:1377446.1
- * Troubleshooting Performance Issues
NOTE:1376916.1
- Troubleshooting: 'Log file sync' Waits
NOTE:155971.1
- Resolving Intense and "Random" Buffer Busy Wait Performance Problems
NOTE:164768.1
- Troubleshooting: High CPU Utilization
NOTE:228913.1
- Systemwide Tuning Using STATSPACK Reports
NOTE:754639.1
- How to Read Buffer Cache Advisory Section in AWR and Statspack Reports.
NOTE:786554.1
- How to Read PGA Memory Advisory Section in AWR and Statspack Reports to Tune PGA_AGGREGATE_TARGET
NOTE:1349387.1
- Troubleshooting 'cursor: pin S wait on X' waits.
NOTE:6904068.8
- Bug 6904068 - High CPU usage when there are "cursor: pin S" waits
NOTE:262687.1
- Using the DBMS_SQLTUNE Package to Run the SQL Tuning Advisor
- HIGH CPU UTILIZATION DURING MUTEX WAIT EVENTS
NOTE:1301503.1
- Troubleshooting: Missing Automatic Workload Repository (AWR) Snapshots and Other Collection Issues
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29487349/viewspace-2840163/ ,如需转载,请注明出处,否则将追究法律责任。