使用Oracle 11g AWR 进行性能监控(oracle11 awr)
使用Oracle 11g AWR 进行性能监控
Oracle 11g AWR(自动工作负载存储库)是Oracle数据库最重要的性能监控工具之一。它具有固定周期自动收集数据库信息并将其保存在AUR存储库中的功能。在这里,将学习如何使用Oracle AWR监控数据库性能并优化性能。
收集 AWR 数据
使用以下查询语句,您可以轻松地查看有关上次记录多长时间以及现在多长时间的有关数据库性能监控的详细信息。
SELECT *
FROM SYS.AWR_REPORT_TIME_RANGE;
如果您需要更详细的数据库活动统计信息,则可以通过以下查询语句来访问:
SELECT *
FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT(sql_id => ‘YOUR_SQL_ID’, start_time => ‘20200405’, end_time => ‘20200407’));
其中,“YOUR_SQL_ID”为要监控的SQL语句的ID,“start_time”是要监控的日期范围的开始时间,“end_time”是要监控的日期范围的结束时间。
如果您不知道需要监视的SQL语句,可以使用以下查询语句来查找数据库中运行较慢的SQL语句:
SELECT sql_id, elapsed_time, buffer_gets, executions, parse_calls, optimizer_cost, module, action, FIRST_LOAD_TIME, LAST_LOAD_TIME
FROM TABLE(DBMS_SQLTUNE.REPORT_SQL_MONITOR(sql_id => ‘YOUR_SQL_ID’, type => ‘HTML’));
在此查询中,您需要将SQL_ID更改为您要监视的SQL语句的ID。
性能 故障排除
使用以下查询语句,您可以获取有关Oracle数据库实例的快照信息,以便更深入地分析和排除故障:
SELECT *
FROM SYS.WRH$_ACTIVE_SESSION_HISTORY;
此外,您也可以运行AWR报告标准报告,从而得到更详细的性能故障排除信息。以下是查询语句:
SELECT *
FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT(sql_id => ‘YOUR_SQL_ID’, start_time => ‘20200401’, end_time => ‘20200405’)) WHERE ROWNUM
其中,“YOUR_SQL_ID”是要监视的SQL语句ID,“start_time”是要监视的日期范围的开始时间,“end_time”是要监视的日期范围的结束时间。
优化性能
如果您需要检查内存使用情况,以查找可能由于不正确的内存配置而导致的性能问题,则可以运行以下查询语句:
SELECT *
FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_MEM_TARGET_ADVICE);
该查询将为您提供有关建议配置于哪个容器和使用哪个大小的内存才能优化性能的信息。
您还可以使用以下语句来检查AWR报告中的SQL执行计划和SQL执行统计信息:
SELECT *
FROM TABLE(DBMS_SQLTUNE.FIND_SQL_PLAN_BASELINE(sql_id => ‘YOUR_SQL_ID’, plan_hash_value => ‘YOUR_PLAN_HASH_VALUE’));
其中,“YOUR_SQL_ID”是要优化的SQL语句的ID,“YOUR_PLAN_HASH_VALUE”是SQL语句的哈希值。
结论
在Oracle 11g中使用AWR进行性能监控和优化是一项重要的任务。通过使用以上查询语句,您可以轻松访问数据库性能信息,并深入了解可能导致性能问题的根本原因。如果您需要更多的帮助来优化Oracle数据库性能,请查看Oracle文档或咨询专家。