ORACLE数据库诊断工具介绍
- 格式:ppt
- 大小:236.00 KB
- 文档页数:58
案例1ORACLEANALYZE命令的使用ORACLEANALYZE命令是Oracle数据库中一种用于调优和优化数据库性能的工具。
它能够收集数据库对象的统计信息、诊断性能问题并提供解决方案。
在本文中,我们将讨论ORACLEANALYZE命令的使用以及相关的案例。
首先,ORACLEANALYZE命令可以通过以下方式使用:```ANALYZE TABLE table_name [PARTITION partition_name][ESTIMATE [SAMPLE] statistics_sample_size [PERCENT] [FOR PARTITION (partition)][DELETESTATISTICS][FORCE];```ORACLEANALYZE命令的功能主要有两个方面:统计信息收集和性能问题诊断。
1. 统计信息收集:通过使用ORACLEANALYZE命令,可以收集数据库对象的统计信息,例如表、索引和分区等。
统计信息对于查询优化和执行计划的选择非常重要。
通过收集统计信息,我们可以使Oracle优化器更准确地评估查询的成本,并选择效率最高的执行计划。
2. 性能问题诊断:ORACLEANALYZE命令还可以诊断性能问题,并提供相应的解决方案。
它可以识别出表和索引的性能问题,例如表中的高聚簇因子(cluster factor)或者索引的低选择性(selectivity)。
此外,ORACLEANALYZE命令还可以检测到过时的统计信息,以及需要重新收集统计信息的对象。
下面以一个具体的案例来说明ORACLEANALYZE命令的使用。
假设我们有一个名为"orders"的表,用于存储订单信息。
这个表有一个名为"order_date"的列,我们希望通过ORACLEANALYZE命令收集该列的统计信息,并对性能进行诊断。
首先,我们可以使用以下命令来收集统计信息:```ANALYZE TABLE orders ESTIMATE STATISTICS SAMPLE 10 PERCENT FOR COLUMNS (order_date);```上述命令中,我们使用了"ESTIMATE STATISTICS"子句来指定要收集统计信息,"SAMPLE 10 PERCENT"表示我们希望对10%的数据样本进行统计。
如何使用AWR报告来诊断Oracle数据库性能问题1如何使用AWR报告来诊断数据库性能问题 (2)1.1概述 (2)1.2性能诊断解决方案 (2)1.3如何收集AWR报告 (2)1.4Top 5 Timed Events部分 (7)1.5SQL Statistics部分 (10)1.5.1使用SQL Tuning Advisor (13)1.6Load Profile部分 (16)1.7Instance Efficiency部分 (17)1.8Latch Activity部分 (18)1.9其它值得注意的等待事件 (19)1.9.1CPU time events (19)1.9.2Log file sync waits (20)1如何使用AWR报告来诊断Oracle数据库性能问题1.1概述AWR、ADDM、ASH是分析Oracle数据库性能问题的重要工具。
本文主要描述了如何阅读、解析AWR报告中关于数据库性能问题的内容,帮助Oracle管理人员快速定位、解决Oracle数据库性能问题。
需要注意的是,生成AWR Report、访问AWR视图的相关内容,以及使用AWR 相关的诊断信息,都需要额外的Diagnostic Pack授权。
同时,生成AWR、ADDM、ASH报告也都需要获得Diagnostic Pack授权。
1.2性能诊断解决方案对于Oracle数据库整体的性能问题,AWR的报告是一个非常有用的诊断工具。
一般来说,当发现有性能问题时,我们会收集有性能问题的时间段的AWR报告。
但最好只收集1个小时时间段的AWR报告,如果时间过长,AWR报告就不能很好的反映出问题所在。
同时,还应该收集一份没有性能问题的时间段的AWR报告,作为一个参照,来对比有问题的时间段的AWR报告,而且,这两个AWR报告的时间段应该是一致的。
1.3如何收集AWR报告AWR属于sys用户,用于存放系统性能指标数据。
AWR存放于SYSAUX表空间。
awr报告分析AWR报告是Oracle数据库专业的性能分析工具之一。
通过AWR报告分析,可以清楚地了解数据库的性能瓶颈,并针对性地进行优化。
在日常数据库维护和性能优化过程中,AWR报告分析是必不可少的一部分。
AWR报告是Automatic Workload Repository(自动工作负载存储库)的简称。
它是Oracle数据库在10g及以上版本中引入的一项新功能,用于收集数据库运行期间的性能信息。
通常情况下,AWR报告的生成周期为30分钟,也可以手动进行生成。
AWR报告保存在数据库中,可以长时间保存。
AWR报告主要由三个部分组成:数据库基本信息、性能诊断和总体数据库性能指标。
其中,数据库基本信息主要包括数据库版本、实例名称、时间范围等。
性能诊断主要是对数据库中存在的性能瓶颈进行诊断和描述。
总体数据库性能指标则用于反映数据库的整体性能状况。
在进行AWR报告分析时,需要特别注意以下几个方面:1. 数据库的响应时间响应时间是用户感知性能的直接指标。
AWR报告可以提供数据库在不同时间段内的响应时间统计信息,可以帮助我们发现响应时间异常的问题,并进行针对性的优化。
2. 数据库资源的利用率AWR报告可以提供数据库各个资源的利用率信息,包括CPU、内存、磁盘等。
这些信息可以帮助我们了解数据库的资源状况,发现系统瓶颈所在,并进行资源分配或瓶颈优化。
3. SQL语句的执行情况SQL语句是数据库的核心组成部分,也是数据库性能优化的重点。
AWR报告可以提供SQL语句的执行情况,包括执行时间、执行次数、锁等待情况等。
通过分析SQL语句的执行情况,可以发现性能瓶颈所在,进而优化SQL语句的执行效率。
4. 数据库的并发度并发度是数据库可以同时处理的用户数量。
AWR报告中可以提供并发量、等待事件、死锁等信息。
这些信息可以帮助我们发现影响数据库并发度的因素,并进行相应的优化。
同时,还需要注意AWR报告的时间跨度和样本数量,以保证AWR报告分析的准确性和有效性。
问题描述:这是帮助一个公司的诊断案例.应用是个后台新闻发布系统.症状是,通过连接访问新闻页是极其缓慢通常需要十数秒才能返回.这种性能是用户不能忍受的.操作系统:sunos 5.8数据库版本:8.1.71.检查并跟踪数据库进程诊断时是晚上,无用户访问在前台点击相关页面,同时进行进程跟踪查询v$session视图,获取进程信息sql> select sid,serial#,username from v$session; sid serial# username---------- ---------- ------------------------------ 1 1 2 1 3 1 4 1 5 1 6 1 7 284 iflow 11 214 iflow 12 164 sys 16 1042 iflow10 rows selected.启用相关进程sql_tracesql> exec dbms_system.set_sql_trace_in_session(7,284,true)pl/sql procedure successfully completed.sql> exec dbms_system.set_sql_trace_in_session(11,214,true)pl/sql procedure successfully completed.sql> exec dbms_system.set_sql_trace_in_session(16,1042,true)pl/sql procedure successfully completed.sql> select sid,serial#,username from v$session; sid serial# username---------- ---------- ------------------------------ 1 1 2 1 3 1 4 1 5 1 6 1 7 284 iflow 11 214 iflow 12 164 sys 16 1042 iflow10 rows selected.等候一段时间,关闭sql_tracesql> exec dbms_system.set_sql_trace_in_session(7,284,false)pl/sql procedure successfully completed.sql> exec dbms_system.set_sql_trace_in_session(11,214,false)pl/sql procedure successfully completed.sql> exec dbms_system.set_sql_trace_in_session(16,1042,false)pl/sql procedure successfully completed.2.检查trace文件检查发现以下语句是可疑的********************************************************************************selectauditstatus,categoryid,auditlevel from categoryarticleassign a,category b where b.id=a.categoryid and articleid= 20030700400141 and auditstatus>0call count cpu elapsed disk query current rows------- ------ -------- ---------- ---------- ---------- ---------- ----------parse 1 0.00 0.00 0 0 0 0execute 1 0.00 0.00 0 0 0 0fetch 1 0.81 0.81 0 3892 0 1------- ------ -------- ---------- ---------- ---------- ---------- ----------total 3 0.81 0.81 0 3892 0 1********************************************************************************这里显然是根据articleid进行新闻读取的.非常可疑的是query读取有3892这个内容引起了我的注意.如果遇见过类似的问题,大家在这里就应该知道是怎么回事情了.如果没有遇见过的朋友,能在这里思考一下再往下看.misses in library cache during parse: 1optimizer goal: chooseparsing user id: 41 rows row source operation------- --------------------------------------------------- 1 nested loops 2 index range scan (object id 25062) 1 table access by index rowid category 2 index unique scan (object id 25057)********************************************************************************selectauditstatus,categoryid from categoryarticleassign where articleid=20030700400138 and categoryid in (63, 138,139,140,141,142,143,144,168,213,292,341,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,383,460,461,462,463,621,622,626,629,631,634,636,643,802,837,838,849,850,851,852,853,854, 858,859,860,861,862,863,-1)call count cpu elapsed disk query current rows------- ------ -------- ---------- ---------- ---------- ---------- ----------parse 1 0.00 0.00 0 0 0 0execute 1 0.00 0.00 0 0 0 0fetch 1 4.91 4.91 0 2835 7 1------- ------ -------- ---------- ---------- ---------- ---------- ----------total 3 4.91 4.91 0 2835 7 1misses in library cache during parse: 1optimizer goal: chooseparsing user id: 41 rows row source operation------- --------------------------------------------------- 1 table access full categoryarticleassign我们注意到,这里有一个全表扫描存在********************************************************************************3.登陆数据库,检查相应表结构sql> select index_name,table_name,column_name from user_ind_columns 2 where table_name=upper(categoryarticleassign);index_name table_name column_name ------------------------------ ------------------------------ -------------------- idx_articleid categoryarticleassign articleidind_articleid_categ categoryarticleassign articleid ind_articleid_categ categoryarticleassign categoryid idx_sortid categoryarticleassign sortid pk_categoryarticleassign categoryarticleassign articleid pk_categoryarticleassign categoryarticleassign categoryid pk_categoryarticleassign categoryarticleassign assigntype idx_cat_article categoryarticleassign auditstatus idx_cat_article categoryarticleassign articleid idx_cat_article categoryarticleassign categoryid idx_cat_article categoryarticleassign assigntype 11 rows selected.我们注意到,idx_articleid索引在以上查询中都没有被用到.检查表结构:sql> desc categoryarticleassign name null? type ----------------------------------------- -------- ---------------------------- categoryid not null number articleid not null varchar2(14) assigntype not null varchar2(1) auditstatus not null number sortid not null number unpass varchar2(255)问题发现:因为articleid是个字符型数据,查询中给入的articleid= 20030700400141 是个数字值oracle发生潜在的数据类型转换,从而导致了索引失效sql> select auditstatus,categoryid 2 from 3 categoryarticleassign where articleid=20030700400132;auditstatus categoryid ----------- ---------- 9 94 0 383 0 695 elapsed: 00:00:02.62execution plan---------------------------------------------------------- 0 select statement optimizer=choose (cost=110 card=2 bytes=38) 1 0 table access (full) of categoryarticleassign (cost=110 card=2 bytes=38)4.解决方法简单的在参数两侧各增加一个,既可解决这个问题.对于类似的查询,我们发现query模式读取降低为2几乎不必花费cpu时间了********************************************************************************select unpass from categoryarticleassign where articleid=20030320000682 and categoryid=113 call count cpu elapsed disk query current rows------- ------ -------- ---------- ---------- ---------- ---------- ----------parse 1 0.00 0.00 0 0 0 0execute 1 0.00 0.00 0 0 0 0fetch 1 0.00 0.00 0 2 0 0------- ------ -------- ---------- ---------- ---------- ---------- ----------total 3 0.00 0.00 0 2 0 0misses in library cache during parse: 1optimizer goal: chooseparsing user id: 20 rows row source operation------- --------------------------------------------------- 0 table access by index rowid categoryarticleassign 1 index range scan (object id 3080)********************************************************************************至此,这个问题得到了完满的解决.--******************************************************************************************************问题说明:非常多时候在我们进行数据库操作时比如drop user,drop table等,经常会遇见这样的错误ora-00604: error occurred at recursive sql level 1 .这样的提示,非常多时候是没有丝毫用处的.本案例就这一类问题提供一个思路及方法供大家参考.1. drop user出现问题报出以下错误后退出ora-00604: error occurred at recursive sql level 1ora-00942: table or view does not exist .关于recursive sql 错误我们有必要做个简单说明.我们知道,当我们发出一条简单的命令以后oracle数据库要在后台解析这条命令,并转换为oracle数据库的一系列后台操作. 这些后台操作统称为递归sql比如create table这样一条简单的ddl命令oracle数据库在后台,实际上要把这个命令转换为对于obj$,tab$,col$等底层表的插入操作.oracle所作的工作可能比我们有时候想的要复杂的多.2.跟踪问题我们知道oracle提供sql_trace的功能能用于跟踪oracle数据库的后台递归操作.通过跟踪文件,我们能找到问题的所在以下是格式化(tkprof)后的输出:********************************************************************************the following statement encountered a error during parse:delete from sdo_geom_metadata_table where sdo_owner = wapcommerror encountered: ora-00942********************************************************************************oracle把错误信息首先呈现出来我们看到ora-00942错误是由于sdo_geom_metadata_table表/视图不存在所致问题由此能定位对于这一类的错误,定位问题以后解决的方法就要依据具体问题原因而定了。
OracleAWR介绍Oracle AWR(Automatic Workload Repository)是一种性能诊断工具,通过收集数据库实例的性能数据,并将其存储在AWR中进行分析和报告。
AWR是一个与时间相关的性能存储库,它可以帮助数据库管理员(DBA)和开发人员深入了解数据库实例的性能问题,以便进行优化和调整。
AWR是Oracle数据库的一个核心组件,它收集数据库实例的性能指标和统计信息,并将这些数据存储在AWR中的对应视图中。
AWR从数据库内部获取数据,与传统的性能诊断工具相比,具有更高的精确性和可靠性。
AWR有两个主要的数据收集工作:快照(Snapshot)和报告(Report)。
快照是数据库实例在一段时间内的性能数据点,通常为15分钟。
每个快照都会收集系统事件、会话、等待事件、SQL语句、性能指标等信息。
通过比较不同时刻的快照,可以了解数据库实例在不同时间点上的性能变化情况。
AWR报告是对快照数据进行分析和呈现的工具,可以显示数据库实例在特定时间段内的性能指标和统计信息。
AWR提供了一系列视图和命令用于分析和查询快照和报告数据。
其中,最常用的是DBA_HIST_和V$视图,它们可以用于查询历史性能数据、SQL语句执行计划和优化助手等信息。
此外,AWR还提供了一些对数据库实例进行分析和优化的工具,如ASH(Active Session History)和ADDM (Automatic Database Diagnostic Monitor)。
ASH可以提供实时性能数据,并帮助DBA跟踪会话和等待事件。
ADDM则分析AWR数据,自动识别数据库实例的性能问题,并给出优化建议。
使用AWR进行性能调优需要遵循以下步骤:1.检查AWR快照间隔。
2.收集需要分析的时间段的快照。
3.生成AWR报告。
4.分析报告中的性能指标和统计信息。
5.确定性能瓶颈。
6.优化数据库配置和参数。
7.继续监控AWR数据,并进行性能跟踪和调整。
ORACLEAWR报告详细分析ORACLE AWR(Automatic Workload Repository)报告是ORACLE数据库的性能诊断和优化工具之一、它采集并保存了数据库实例的性能指标数据,例如CPU利用率、内存利用率、I/O活动等。
在实际工作中,分析AWR报告可以帮助我们了解数据库实例的性能瓶颈,并提供相应的优化建议。
AWR报告通常包含多个部分,包括实例活动统计、系统事件统计、SQL统计、I/O统计、SGA统计等。
下面将详细分析AWR报告的各个部分,并提供相应的优化建议。
1.实例活动统计:实例活动统计提供了数据库实例整体的活动情况,包括CPU利用率、用户连接数、用户等待等。
通过分析这些数据,可以判断数据库实例是否存在性能瓶颈,并从中找出问题的原因。
优化建议:-如果CPU利用率较高,可能是由于SQL语句执行效率低导致的,可以通过优化SQL语句来减少CPU负载。
-如果用户等待较多,可能是由于一些资源的瓶颈导致的,可以通过增加相应资源的容量来提高性能。
2.系统事件统计:系统事件统计列出了数据库实例中发生的各种事件的次数和等待时间。
通过分析这些数据,可以判断数据库实例中是否存在事件等待较高的情况,以及可能导致事件等待的原因。
优化建议:-如果一些事件的等待时间较高,可以通过增加相应资源的容量或者调整相关参数来减少等待时间。
-如果类事件的总等待时间较高,可能需要对相关资源进行优化或者增加容量。
3.SQL统计:SQL统计列出了数据库中执行次数较高的SQL语句的统计信息,包括执行次数、平均执行时间、Buffer gets、Disk reads等。
通过分析这些数据,可以找出执行效率较低的SQL语句,并进行优化。
优化建议:-对于执行时间较长的SQL语句,可以通过重写或者调整查询计划来提高执行效率。
-对于频繁执行的SQL语句,可以通过增加缓存或者优化索引来减少IO操作。
4.I/O统计:I/O统计提供了数据库实例中各种I/O活动的统计信息,包括每个表空间的读写次数、平均读写时间等。
ORACLE性能AWR报告的使用和分析Oracle性能AWR报告(Automatic Workload Repository)是Oracle 数据库提供的一个强大的性能诊断工具,可以帮助管理员识别和解决数据库性能问题。
AWR报告收集和保存数据库的性能指标和统计信息,以便在需要时进行分析和比较。
本文将介绍AWR报告的使用和分析过程,包括如何收集AWR报告、AWR报告的内容和结构、及如何分析AWR报告。
一、收集AWR报告AWR报告只能在Oracle数据库中收集,首先需要启用AWR功能。
在Oracle数据库中,AWR功能默认是开启的。
你可以使用以下命令查看AWR 功能是否已经开启:```SELECT name FROM v$statname WHERE name LIKE '%AWR%';```如果显示了AWR相关的统计项,则表示AWR功能已经启用。
要收集AWR报告,需要按照以下步骤操作:1. 连接到数据库,在SQLPlus或类似的工具中执行以下命令,以开启AWR快照:```EXECDBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(;```2.执行一段时间(建议至少30分钟)的正常工作负载。
3.再次执行以下命令,以关闭AWR快照:```EXECDBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(;```4.通过以下命令查看AWR报告的快照ID:```SELECT snap_id FROM dba_hist_snapshot ORDER BY snap_id;```5.选择要分析的快照ID,使用以下命令生成AWR报告:``````根据提示输入快照ID和报告类型(HTML或文本),即可生成AWR报告。
二、AWR报告的内容和结构AWR报告提供了丰富的性能指标和统计信息,以帮助诊断数据库性能瓶颈。
AWR报告通常包括以下几个部分:1.报告概述:包含报告生成的时间、数据库版本、报告周期等信息,并提供了一个整体的性能评估。
oracleexplain数据库的用法一、简介Oracle Explain是Oracle数据库中用于分析查询性能的工具,它可以帮助开发人员和数据库管理员了解查询执行计划,优化查询性能,提高数据库的效率。
二、Explain的使用方法1. 查询性能分析:使用Explain可以分析查询性能,确定查询的执行计划是否合理,是否存在性能瓶颈。
通过Explain生成的报告可以提供查询执行过程中的热点数据和执行时间等信息。
2. 查询优化:通过Explain生成的报告,可以了解查询的执行计划,从而优化查询语句,提高查询性能。
例如,可以通过调整索引、优化数据表结构、减少数据访问等手段来优化查询性能。
3. 使用方式:在Oracle数据库中,可以使用Explain来分析查询性能。
在执行查询之前,可以使用EXPLAIN PLAN语句来生成查询的执行计划。
例如:```sqlEXPLAIN PLAN FOR SELECT * FROM table_name WHERE column_name ='value';```执行上述语句后,系统会生成一个执行计划,并将其存储在数据库中。
可以使用以下语句来查看执行计划:```sqlSELECT * FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE','PLAN_TABLE_OUTPUT'));```4. 注意事项:在使用Explain分析查询性能时,需要注意以下几点:* Explain只能分析已经执行的查询,无法分析未执行的查询。
* Explain生成的报告是基于当前数据库配置和数据表结构的,可能会随着数据库环境的改变而发生变化。
* Explain生成的报告只能提供一种参考,不能完全依赖它来优化查询性能。
需要结合实际情况进行优化。
三、Explain报告的内容Explain报告提供了关于查询执行计划的信息,包括但不限于以下内容:1. 查询计划:报告中会列出查询的执行计划,包括每个操作的顺序、操作类型、消耗的资源等信息。
ORACLEAWR概述ORACLE数据库性能监控是保证数据库系统稳定运行和高效工作的重要手段。
AWR(Automatic Workload Repository)是ORACLE数据库中的一种性能监控和故障诊断工具,用于自动收集和保存数据库中关键性能指标。
AWR的作用是收集数据库实例的各种性能统计信息,以便分析数据库性能瓶颈和瓶颈原因,并基于这些信息提供优化建议和故障诊断。
AWR是ORACLE数据库可选组件,需要手动启用才能使用。
AWR收集的性能统计信息包括:1.定期快照数据:AWR会定期(默认每小时一次)收集数据库实例的性能快照数据,包括CPU使用率、内存使用率、磁盘IO、网络IO等信息。
这些快照数据可以用于分析数据库实例的性能趋势和变化。
2.历史性能数据:AWR会保存一定时间范围内的历史性能数据,通常为7天,用于回溯分析数据库实例的性能问题。
历史性能数据可以通过AWR报告来查看。
3. Top SQL:AWR会识别和保存数据库实例中执行时间最长的SQL语句,这些SQL语句通常是性能瓶颈的主要原因。
通过查看Top SQL信息,可以定位和优化慢查询语句。
4.平均等待事件统计:AWR会收集数据库实例中发生等待事件的次数和持续时间,包括锁等待、IO等待、CPU等待等。
通过分析等待事件统计信息,可以找出导致系统性能下降的瓶颈,并进行优化。
AWR提供了多种方式来进行性能分析和故障诊断:1. AWR报告:AWR报告是AWR的主要输出,提供了数据库实例的性能统计信息、活动会话信息、Top SQL等重要数据。
AWR报告可用于分析数据库实例在一段时间内的性能变化和趋势,并提供了性能优化建议。
2. ASH(Active Session History):ASH是AWR的一个子组件,用于记录和分析活动会话的性能信息。
ASH数据可以用于分析数据库实例的活动会话模式、等待事件和SQL执行计划等信息。
3. ADDM(Automatic Database Diagnostic Monitor):ADDM是AWR的另一个子组件,用于自动分析AWR报告,并提供性能优化建议。
ORACLE性能诊断AWR报告的使用和分析为满足业务的运行要求,高性能要求是目前IT系统普遍面临的最棘手问题,尤其是客户面对着目前越来越庞大系统和数据,系统整合、数据大集中似乎成了趋势。
针对系统性能优化的诊断和分析,数据库方向又是其中的重要一环,本文将针对ORACLE中常用的性能诊断工具AWR报告,进行分析说明。
一、ORACLE性能诊断工具ORACLE数据库的性能的诊断工具有很多种,在9i之前主要通过手工进行采集分析,例如使用动态视图和Statspack报告来获取数据库性能状态信息,10g以后ORACLE数据库的性能诊断和改进建议越来越自动化,不过能够熟悉并掌握ORACLE的相关性能诊断工具的使用,仍对性能问题的准确和有效处理提供有利的帮助。
以下是ORACLE中常用的一些分析工具。
●动态性能视图动态性能视图是ORACLE中最常用,也是最简单的一种工具。
无论何种性能问题,都能在动态性能视图中找到线索,不过仅10g中动态性能视图就高达几百个,每个视图都包括很多诊断信息,想在众多的视图中找到问题的根源,也是一件费力的事情。
一般常用的动态性能视图有:v$session、v$session_wait、v$process、v$sql、v$lock、v$latch、v$sysstat、v$system_event、v$sgastat。
●Statspack报告statspack 是Oracle 9i 之前使用的一个数据库收集工具,收集了数据库全面信息,包括负载概览、前五个等待事件、高速缓存的大小、共享池中SQL语句、表空间和文件I/O、库高速缓存、SGA统计等。
●AWR和ADDM报告AWR是10g以后提供的一个新工具,Oracle 建议用户用这个取代Statspack,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题,并自动生成ADDM (自动数据库诊断监控)报告,为用户提供数据库性能诊断分析建议。