Oracle AWR(Automatic Workload Repository)是Oracle数据库提供的一个自我诊断和优化工具,可以帮助数据库管理员和开发人员更好地了解数据库的性能瓶颈。
开启AWR非常简单,只需要执行以下步骤:
SQL>ALTER SYSTEM SET CONTROL_MANAGEMENT_PACK_ACCESS=DIAGNOSTIC+TUNING;
SQL>ALTER SYSTEM SET STATISTICS_LEVEL=ALL;
这两个命令是启用AWR报告所必需的。第一个命令授权您使用AWR,第二个命令将启用详细的性能分析报告。
一旦开启AWR,您可以随时生成分析报告:
SQL>SELECT * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(1, 132, Top_N =>15));
该命令将生成包含最近132个快照的AWR报告。此外,它还将显示数据库中最好的15个SQL语句和等待事件。
默认情况下,AWR报告在每个小时的00分,20分,40分时生成一个快照。您也可以通过以下命令更改这些设置:
SQL>BEGIN
DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
retention_in_days =>7,
interval =>30,
topnsql =>50,
dbid =>123456
);
END;
该命令将更改快照保留设置为7天,将快照生成间隔更改为30分钟,并将TopN SQL变量设置为50。
除了默认生成的AWR报告外,您可以通过以下命令在特定时间生成自定义AWR报告:
SQL>EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_AWR(sqldate =>'2021-11-01 00:00:00', duration =>30, format =>'HTML');
该命令将创建一个将在2021年11月1日0点到0点30分的时间段内生成的30分钟AWR报告,格式为HTML。
总之,AWR是Oracle强大的自我优化工具,可以帮助您发现数据库性能瓶颈,调整数据库配置和SQL语句,提高数据库的性能。