awrrpt

Oracle AWR报告解析

export ORACLE_SID=payment
sqlplus "/as sysdba"
如果是在本地,你可以去oracle安装目录下的文件夹rdbms/admin/内,将全部以awr开头的文件复制出来。

SQL> @?/rdbms/admin/awrrpt

Current Instance
~~~~~~~~~~~~~~~~

   DB Id    DB Name      Inst Num Instance
----------- ------------ -------- ------------
 2647219378 PAYMENT             1 payment


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: html

Type Specified:  html


Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   DB Id     Inst Num DB Name      Instance     Host
------------ -------- ------------ ------------ ------------
* 2647219378        1 PAYMENT      payment      db1
  2647219378        1 BJEBANK      bjebank      db5
  2647219378        1 BJEBANK      bjebank      db1
  2647219378        1 BJEBANK      bjebank      db4
* 2647219378        1 PAYMENT      payment      gateway

Using 2647219378 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 <return> without
specifying a number lists all completed snapshots.


Enter value for num_days:

Listing all Completed Snapshots

                                                        Snap
Instance     DB Name        Snap Id    Snap Started    Level
------------ ------------ --------- ------------------ -----
payment      PAYMENT          50027 29 Feb 2012 23:00      1
                              50028 01 Mar 2012 00:00      1
                              50029 01 Mar 2012 01:00      1
                              50030 01 Mar 2012 02:00      1
                              50031 01 Mar 2012 03:00      1
                              50032 01 Mar 2012 04:00      1
                              50033 01 Mar 2012 05:00      1
                              50034 01 Mar 2012 06:00      1
                              50035 01 Mar 2012 07:00      1
                              50036 01 Mar 2012 08:00      1
                              50037 01 Mar 2012 09:00      1
                              50038 01 Mar 2012 10:00      1
                              50039 01 Mar 2012 11:00      1
                              50040 01 Mar 2012 12:00      1
                              50041 01 Mar 2012 13:00      1
                              50042 01 Mar 2012 14:00      1
                              50043 01 Mar 2012 15:00      1
                              50044 01 Mar 2012 16:00      1
                              50045 01 Mar 2012 17:00      1
                              50046 01 Mar 2012 18:00      1
                              50047 01 Mar 2012 19:00      1
                              50048 01 Mar 2012 20:00      1
                              50049 01 Mar 2012 21:00      1
                              50050 01 Mar 2012 22:00      1
                              50051 01 Mar 2012 23:00      1
                              50052 02 Mar 2012 00:00      1
                              50053 02 Mar 2012 01:00      1
                              50054 02 Mar 2012 02:00      1
                              50055 02 Mar 2012 03:00      1
                              50056 02 Mar 2012 04:00      1
                              50057 02 Mar 2012 05:00      1
                              50058 02 Mar 2012 06:00      1
                              50059 02 Mar 2012 07:00      1
                              50060 02 Mar 2012 08:00      1
                              50061 02 Mar 2012 09:00      1
                              50062 02 Mar 2012 10:00      1
                              50063 02 Mar 2012 11:00      1
                              50064 02 Mar 2012 12:00      1
                              50065 02 Mar 2012 13:00      1
                              50066 02 Mar 2012 14:00      1
                              50067 02 Mar 2012 15:00      1
                              50068 02 Mar 2012 16:00      1
                              50069 02 Mar 2012 17:00      1
                              50070 02 Mar 2012 18:00      1
                              50071 02 Mar 2012 19:00      1
                              50072 02 Mar 2012 20:00      1
                              50073 02 Mar 2012 21:00      1
                              50074 02 Mar 2012 22:00      1
                              50075 02 Mar 2012 23:00      1
                              50076 03 Mar 2012 00:00      1
                              50077 03 Mar 2012 01:00      1
                              50078 03 Mar 2012 02:00      1
                              50079 03 Mar 2012 03:00      1
                              50080 03 Mar 2012 04:00      1
                              50081 03 Mar 2012 05:00      1
                              50082 03 Mar 2012 06:00      1

                                                        Snap
Instance     DB Name        Snap Id    Snap Started    Level
------------ ------------ --------- ------------------ -----
payment      PAYMENT          50083 03 Mar 2012 07:00      1
                              50084 03 Mar 2012 08:00      1
                              50085 03 Mar 2012 09:00      1
                              50086 03 Mar 2012 10:00      1
                              50087 03 Mar 2012 11:00      1
                              50088 03 Mar 2012 12:00      1
                              50089 03 Mar 2012 13:00      1
                              50090 03 Mar 2012 14:00      1
                              50091 03 Mar 2012 15:00      1
                              50092 03 Mar 2012 16:00      1
                              50093 03 Mar 2012 17:00      1
                              50094 03 Mar 2012 18:00      1
                              50095 03 Mar 2012 19:00      1
                              50096 03 Mar 2012 20:00      1
                              50097 03 Mar 2012 21:00      1
                              50098 03 Mar 2012 22:00      1
                              50099 03 Mar 2012 23:00      1
                              50100 04 Mar 2012 00:00      1
                              50101 04 Mar 2012 01:00      1
                              50102 04 Mar 2012 02:00      1
                              50103 04 Mar 2012 03:00      1
                              50104 04 Mar 2012 04:00      1
                              50105 04 Mar 2012 05:00      1
                              50106 04 Mar 2012 06:00      1
                              50107 04 Mar 2012 07:00      1
                              50108 04 Mar 2012 08:00      1
                              50109 04 Mar 2012 09:00      1
                              50110 04 Mar 2012 10:00      1
                              50111 04 Mar 2012 11:00      1
                              50112 04 Mar 2012 12:00      1
                              50113 04 Mar 2012 13:00      1
                              50114 04 Mar 2012 14:00      1
                              50115 04 Mar 2012 15:00      1
                              50116 04 Mar 2012 16:00      1
                              50117 04 Mar 2012 17:00      1
                              50118 04 Mar 2012 18:00      1
                              50119 04 Mar 2012 19:00      1
                              50120 04 Mar 2012 20:00      1
                              50121 04 Mar 2012 21:00      1
                              50122 04 Mar 2012 22:00      1
                              50123 04 Mar 2012 23:00      1
                              50124 05 Mar 2012 00:00      1
                              50125 05 Mar 2012 01:00      1
                              50126 05 Mar 2012 02:00      1
                              50127 05 Mar 2012 03:00      1
                              50128 05 Mar 2012 04:00      1
                              50129 05 Mar 2012 05:00      1
                              50130 05 Mar 2012 06:00      1
                              50131 05 Mar 2012 07:00      1
                              50132 05 Mar 2012 08:00      1
                              50133 05 Mar 2012 09:00      1
                              50134 05 Mar 2012 10:00      1
                              50135 05 Mar 2012 11:00      1
                              50136 05 Mar 2012 12:00      1
                              50137 05 Mar 2012 13:00      1
                              50138 05 Mar 2012 14:00      1

                                                        Snap
Instance     DB Name        Snap Id    Snap Started    Level
------------ ------------ --------- ------------------ -----
payment      PAYMENT          50139 05 Mar 2012 15:00      1
                              50140 05 Mar 2012 16:00      1
                              50141 05 Mar 2012 17:00      1
                              50142 05 Mar 2012 18:00      1
                              50143 05 Mar 2012 19:00      1
                              50144 05 Mar 2012 20:00      1
                              50145 05 Mar 2012 21:00      1
                              50146 05 Mar 2012 22:00      1
                              50147 05 Mar 2012 23:00      1
                              50148 06 Mar 2012 00:00      1
                              50149 06 Mar 2012 01:00      1
                              50150 06 Mar 2012 02:00      1
                              50151 06 Mar 2012 03:00      1
                              50152 06 Mar 2012 04:00      1
                              50153 06 Mar 2012 05:00      1
                              50154 06 Mar 2012 06:00      1
                              50155 06 Mar 2012 07:00      1
                              50156 06 Mar 2012 08:00      1
                              50157 06 Mar 2012 09:00      1
                              50158 06 Mar 2012 10:00      1
                              50159 06 Mar 2012 11:00      1
                              50160 06 Mar 2012 12:00      1
                              50161 06 Mar 2012 13:00      1
                              50162 06 Mar 2012 14:00      1
                              50163 06 Mar 2012 15:00      1
                              50164 06 Mar 2012 16:00      1

                              50165 06 Mar 2012 17:43      1
                              50166 06 Mar 2012 18:00      1
                              50167 06 Mar 2012 19:00      1
                              50168 06 Mar 2012 20:00      1
                              50169 06 Mar 2012 21:00      1
                              50170 06 Mar 2012 22:00      1
                              50171 06 Mar 2012 23:00      1
                              50172 07 Mar 2012 00:00      1
                              50173 07 Mar 2012 01:00      1
                              50174 07 Mar 2012 02:00      1
                              50175 07 Mar 2012 03:00      1
                              50176 07 Mar 2012 04:00      1
                              50177 07 Mar 2012 05:00      1
                              50178 07 Mar 2012 06:00      1
                              50179 07 Mar 2012 07:00      1
                              50180 07 Mar 2012 08:00      1
                              50181 07 Mar 2012 09:00      1
                              50182 07 Mar 2012 10:00      1
                              50183 07 Mar 2012 11:00      1
                              50184 07 Mar 2012 12:00      1
                              50185 07 Mar 2012 13:00      1
                              50186 07 Mar 2012 14:00      1
                              50187 07 Mar 2012 15:00      1
                              50188 07 Mar 2012 16:00      1
                              50189 07 Mar 2012 17:00      1
                              50190 07 Mar 2012 18:00      1
                              50191 07 Mar 2012 19:00      1
                              50192 07 Mar 2012 20:00      1
                              50193 07 Mar 2012 21:00      1

                                                        Snap
Instance     DB Name        Snap Id    Snap Started    Level
------------ ------------ --------- ------------------ -----
payment      PAYMENT          50194 07 Mar 2012 22:00      1
                              50195 07 Mar 2012 23:00      1
                              50196 08 Mar 2012 00:00      1
                              50197 08 Mar 2012 01:00      1
                              50198 08 Mar 2012 02:00      1
                              50199 08 Mar 2012 03:00      1
                              50200 08 Mar 2012 04:00      1
                              50201 08 Mar 2012 05:00      1
                              50202 08 Mar 2012 06:00      1
                              50203 08 Mar 2012 07:00      1
                              50204 08 Mar 2012 08:00      1
                              50205 08 Mar 2012 09:00      1

                              50206 08 Mar 2012 10:00      1
                              50207 08 Mar 2012 11:00      1

Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 50204
Begin Snapshot Id specified: 50204

Enter value for end_snap: 50205
End   Snapshot Id specified: 50205



Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is awrrpt_1_50204_50205.html.  To use this name,
press <return> to continue, otherwise enter an alternative.

Enter value for report_name: awrrpt

Using the report name awrrpt

html。。。

 

我将截图献上:

 

Load Profile

 

Per SecondPer Transaction
Redo size:1,548.691,023.00
Logical reads:2,600.301,717.65
Block changes:12.087.98
Physical reads:1,148.69758.78
Physical writes:1.440.95
User calls:8.845.84
Parses:8.045.31
Hard parses:0.030.02
Sorts:157.89104.30
Logons:0.220.14
Executes:8.765.79
Transactions:1.51

 

% Blocks changed per Read:0.46Recursive Call %:87.87
Rollback per transaction %:74.83Rows per Sort:0.45

Instance Efficiency Percentages (Target 100%)

 

Buffer Nowait %:100.00Redo NoWait %:100.00
Buffer Hit %:55.82In-memory Sort %:100.00
Library Hit %:99.58Soft Parse %:99.66
Execute to Parse %:8.29Latch Hit %:99.98
Parse CPU to Parse Elapsd %:30.02% Non-Parse CPU:98.25

Shared Pool Statistics

 

BeginEnd
Memory Usage %:74.5974.83
% SQL with executions>1:95.2096.11
% Memory for SQL w/exec>1:90.6894.96

Top 5 Timed Events

 

EventWaitsTime(s)Avg Wait(ms)% Total Call TimeWait Class
CPU time 79 98.8
db file scattered read261,014150< /TD> 19.0User I/O
log file parallel write4,297202.0System I/O
log file sync1,691111.1Commit
os thread startup22125 .7Concurrency

 

 

 

SQL ordered by Elapsed Time

  • Resources reported for PL/SQL code includes the resources used by all SQL statements called by the code.
  • % Total DB Time is the Elapsed Time of the SQL statement divided into the Total Database Time multiplied by 100
Elapsed Time (s)CPU Time (s)Executions Elap per Exec (s) % Total DB TimeSQL IdSQL ModuleSQL Text
3535122.8943.18 7jh4kggcpj59c DECLARE job BINARY_INTEGER := ...
1515600.2619 .22 05mqrxpqc5q4y DECLARE job BINARY_INTEGER := ...
1414600.2316.90 63pda6zkqvzja SELECT V.TRANID, V.TN FROM VI...
6616.347.90< /TD> 13ga7qmrfu6cb DECLARE job BINARY_INTEGER := ...
6616.337.89 c8vrmzdt9xpz2 select distinct t1.cardnum ali...
3313.173.96< /TD> dcphavbybjqc3 insert into TAB_MONITOR_TEMP(T...
3313.153.93 f103n4vm3m47s insert into TAB_MONITOR_TEMP(T...
3313.113.88< /TD> fxhdknkv2hv07 insert into TAB_MONITOR_TEMP(T...
3312.973.71 2y5yxvh4d6rux insert into TAB_MONITOR_TEMP(T...
3312.823.51< /TD> 2cjbnfynfzadu insert into TAB_MONITOR_TEMP(T...
3312.783.46 aj9myscqtbdmn insert into TAB_MONITOR_TEMP(T...
3312.773.45< /TD> 42qw4q29fz6p1 insert into TAB_MONITOR_TEMP(T...
3312.773.45 93d5q7qmpt3dh insert into TAB_MONITOR_TEMP(T...
3312.743.42< /TD> 88q73pbtxn82f insert into TAB_MONITOR_TEMP(T...
3312.723.39 a4gtqvsx0zzgc insert into TAB_MONITOR_TEMP(T...
3312.713.38< /TD> cqwd40vgpczct insert into TAB_MONITOR_TEMP(T...
3312.703.36 g5uc91hdd0nzp insert into TAB_MONITOR_TEMP(T...
22600.032.25 8rhgawgzww8hh DECLARE job BINARY_INTEGER := ...
222,2800.002.14 b1662b6fmrjav oracle@gateway (TNS V1-V3) INSERT INTO "DIVTS"."DVID_TAS...
11600.021.77 9hd6pdvq3wbrc SELECT V.TRANID, V.LOCALDATE,...
1110.951.18 bunssq950snhf insert into wrh$_sga_target_ad...

 

 

<think>我们正在处理用户的问题:比较Oracle数据库在Windows系统上当天与前一天的“数据”或“性能”差异。由于问题中提到了“数据对比”和“性能差异”,我们需要分别考虑这两种情况。 1. 数据对比:通常指数据内容的变化,比如表中数据的增删改。我们可以通过比较特定表的数据快照(例如,通过导出数据为文本或使用校验和)或者通过查询数据库的变更记录(如果开启了审计或日志)来实现。但更常见的是,用户可能关心某些关键业务表的数据变化。 2. 性能差异:指数据库运行性能的变化,比如SQL执行时间、系统资源使用情况(CPU、内存、I/O)等。我们可以通过比较两天的性能指标(如AWR报告、Statspack报告)来获取。 由于用户没有明确指定是数据对比还是性能对比,我们将分别提供两种情况的解决方案。 注意:以下方法假设我们能够连接到前一天的数据库状态(例如,有备份或快照)或者已经收集了前一天的性能数据。如果没有,则只能依赖已有的监控数据。 方案一:数据对比 方法1:使用校验和(CHECKSUM)或HASH比较表数据 - 如果表不大,可以计算整个表的校验和(如使用DBMS_CRYPTO包计算HASH值)来比较。但注意,如果表很大,计算整个表的HASH可能耗时且不现实。 - 另一种方法是逐行比较,但同样效率低。 方法2:使用数据泵导出并比较 - 分别导出当天和前一天的特定表(使用数据泵或expdp),然后使用文件比较工具(如fc)比较导出的文件。但这种方法不适用于大表,且需要额外存储空间。 方法3:使用Oracle的闪回查询(Flashback Query)或闪回版本查询(Flashback Version Query) - 前提:必须启用了撤销表空间(Undo Tablespace)并且保留时间足够长(至少24小时以上)。 - 通过闪回查询,我们可以查询前一天某个时间点的数据,然后与当前数据比较。例如: SELECT * FROM table_name AS OF TIMESTAMP SYSDATE-1; 然后与当前表数据做差集(MINUS)比较。 方法4:使用物化视图日志或CDC(Change Data Capture) - 如果已经配置了物化视图日志或CDC,那么可以获取到变更的数据。 方法5:使用触发器记录变更 - 如果表上有触发器记录变更,那么可以查询变更记录表。 然而,如果没有预先设置,以上某些方法可能无法使用。因此,我们推荐使用闪回查询(如果可用)或导出比较(小表)的方法。 方案二:性能对比 方法1:使用AWR报告(需要Oracle诊断包许可) - Oracle的AWR(Automatic Workload Repository)报告可以生成两个时间段的性能数据快照。我们可以生成当天和前一天的AWR报告,然后比较关键指标(如DB Time, Top SQL等)。 方法2:使用Statspack(免费,但功能不如AWR强大) - 如果没有诊断包许可,可以使用Statspack。同样需要生成两个时间段的报告进行比较。 方法3:使用动态性能视图(V$视图)和DBA_HIST视图(需要AWR许可) - 通过查询DBA_HIST_*视图(如DBA_HIST_SYSSTAT)来获取历史性能数据,然后比较当天和前一天同一时间段的数据。 方法4:使用自定义的性能监控 - 如果用户有自己部署的性能监控(如定期收集V$SESSION, V$SQLSTATS等),则可以直接比较这些数据。 由于用户环境是Windows,上述方法在Windows上同样适用,因为Oracle在Windows和Linux上的管理视图和工具基本相同(除了少数操作系统相关的特性)。 具体操作步骤(以数据对比为例,假设我们要比较表EMPLOYEES): 1. 检查是否可以使用闪回查询: - 确认撤销表空间的保留时间(UNDO_RETENTION)是否大于24小时。 - 查询表在一天前的数据: SELECT * FROM employees AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' DAY); 2. 将闪回查询的结果与当前表数据比较: -- 查找新增的数据(当前有,前一天没有) SELECT * FROM employees MINUS SELECT * FROM employees AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' DAY); -- 查找删除的数据(前一天有,当前没有) SELECT * FROM employees AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' DAY) MINUS SELECT * FROM employees; 3. 注意:如果表有LOB字段,则不能直接使用MINUS,需要单独处理LOB字段。 具体操作步骤(性能对比): 1. 生成AWR报告: - 登录数据库,执行:@?/rdbms/admin/awrrpt.sql - 选择当天和前一天的快照范围,生成两个报告。 2. 比较AWR报告: - 使用Oracle自带的awrddrpt.sql(AWR差异报告)来生成两个时间段的比较报告。 - 执行:@?/rdbms/admin/awrddrpt.sql 注意:awrddrpt.sql会提示输入两个时间段(每个时间段需要指定开始和结束快照),然后生成一个比较报告。 如果用户没有AWR许可,可以使用Statspack: 1. 安装Statspack:@?/rdbms/admin/spcreate.sql 2. 定期收集快照:exec statspack.snap; 3. 生成报告:@?/rdbms/admin/spreport.sql 4. 同样,需要生成两个报告并手动比较。 由于用户的问题比较宽泛,我们提供了两种方向的解决方案。在实际操作中,用户需要明确是数据对比还是性能对比,以及具体对比哪些数据或性能指标。 最后,考虑到用户可能希望有一个具体的例子,我们以数据对比为例(使用闪回查询)给出一个示例脚本: 示例:比较表SCOTT.EMP在当天和前一天的变化 1. 确保能够闪回一天前: SHOW PARAMETER undo_retention; -- 应该大于86400秒(24小时) 2. 如果不够,可以临时修改(但需要重启数据库?不,undo_retention是动态参数,但只能保证在撤销表空间足够的情况下才能保留那么久): ALTER SYSTEM SET undo_retention=86400; 3. 创建两个临时表(可选): CREATE TABLE emp_today AS SELECT * FROM scott.emp; CREATE TABLE emp_yesterday AS SELECT * FROM scott.emp AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' DAY); 4. 比较差异: -- 新增和修改的数据(注意:修改的数据在MINUS操作中会体现为删除旧行,新增新行) SELECT '新增' AS operation, t.* FROM emp_today t LEFT JOIN emp_yesterday y ON t.empno = y.empno WHERE y.empno IS NULL UNION ALL SELECT '删除' AS operation, y.* FROM emp_yesterday y LEFT JOIN emp_today t ON y.empno = t.empno WHERE t.empno IS NULL UNION ALL SELECT '修改' AS operation, t.* FROM emp_today t JOIN emp_yesterday y ON t.empno = y.empno WHERE t.ename <> y.ename OR t.job <> y.job OR ...; -- 需要比较所有字段,或者使用DBMS_COMPARISON包(但需要额外安装) 5. 或者使用MINUS(但会忽略重复行,且需要所有字段都匹配): -- 注意:MINUS会去重,如果表没有主键或唯一键,可能会有问题。 -- 查找新增和修改的行(当前有而昨天没有的) SELECT '新增或修改' AS operation, * FROM emp_today MINUS SELECT '新增或修改' AS operation, * FROM emp_yesterday; -- 查找删除的行(昨天有而当前没有的) SELECT '删除' AS operation, * FROM emp_yesterday MINUS SELECT '删除' AS operation, * FROM emp_today; 但是,这种方法无法区分修改和新增(因为修改的行在MINUS中会同时出现在两个结果集中)。因此,更推荐使用主键进行连接比较。 由于问题复杂性,我们只能提供一般性指导。用户需要根据实际环境调整。 注意:在Windows上,Oracle的命令行工具(如SQL*Plus)的使用与Linux相同。 最后,考虑到用户可能需要自动化比较,可以编写PL/SQL脚本或使用第三方工具。 以上方法仅供参考,具体实施需要根据数据库的配置和许可情况。</think>### Oracle数据库在Windows系统上当日与前一天数据/性能对比方法 #### 一、数据内容对比(表级/行级) 1. **闪回查询(需启用撤销表空间)** ```sql -- 对比表数据差异(示例) SELECT '新增' AS 变更类型, t.* FROM 目标表 t WHERE NOT EXISTS ( SELECT 1 FROM 目标表 AS OF TIMESTAMP SYSDATE-1 y WHERE t.主键列 = y.主键列 ) UNION ALL SELECT '删除' AS 变更类型, y.* FROM 目标表 AS OF TIMESTAMP SYSDATE-1 y WHERE NOT EXISTS ( SELECT 1 FROM 目标表 t WHERE t.主键列 = y.主键列 ); ``` *适用场景:追踪行级增删,需确保`UNDO_RETENTION`参数覆盖时间范围[^1]。 2. **数据泵导出比对** ```powershell rem 前一天导出 expdp user/password@db TABLES=目标表 DUMPFILE=day1.dmp DIRECTORY=DATA_PUMP_DIR rem 当天导出 expdp user/password@db TABLES=目标表 DUMPFILE=day2.dmp DIRECTORY=DATA_PUMP_DIR rem 使用fc比较文件 fc /B day1.dmp day2.dmp > diff_report.txt ``` *适用场景:全表数据二进制校验,适合小表[^1]。 #### 二、性能指标对比 1. **AWR报告对比(需Diagnostics Pack许可)** ```sql -- 生成昨日报告 @?/rdbms/admin/awrrpt.sql -- 选择昨日快照范围 -- 生成今日报告 @?/rdbms/admin/awrrpt.sql -- 选择今日相同时段 -- 生成差异报告 @?/rdbms/admin/awrddrpt.sql ``` *关键对比项:* - `DB Time` 变化率 - Top 5 等待事件 - SQL执行时间TOP10 - 内存/IO利用率 2. **Statspack(免费方案)** ```sql -- 安装Statspack @?/rdbms/admin/spcreate.sql -- 手动创建快照 EXEC statspack.snap; -- 生成报告 @?/rdbms/admin/spreport.sql ``` *对比方式:* 人工比较两个时段的报告文件 #### 三、元数据变更追踪 ```sql -- 检查对象变更 SELECT OBJECT_NAME, OBJECT_TYPE, CREATED, LAST_DDL_TIME FROM USER_OBJECTS WHERE LAST_DDL_TIME > SYSDATE-1; -- 统计信息变化 SELECT TABLE_NAME, LAST_ANALYZED, NUM_ROWS FROM USER_TABLES WHERE LAST_ANALYZED > SYSDATE-1; ``` #### 四、自动化监控建议 1. **创建基准快照表** ```sql CREATE TABLE perf_baseline AS SELECT SYSDATE AS snap_time, v.* FROM V$SYSSTAT v; ``` 2. **Windows计划任务配置** - 每日定时执行SQL脚本 - 使用批处理调用SQL*Plus: ```bat sqlplus user/password @C:\scripts\daily_check.sql ``` > **注意**: > - 闪回查询依赖足够的undo表空间 > - AWR报告需要Oracle企业版许可 > - 推荐使用`DBMS_COMPARISON`包进行高级数据比对(需Oracle 11g+)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值