ORACLE 10G ADDM诊断工具的使用
2012-02-01 10:46
393 查看
ORACLE 10G ADDM诊断工具的使用
一、ADDM提供了一个整体的优化方案.基于一段时间内的AWR snapshots可以执行ADDM 分析,可以诊断在这段期间内数据库可能存在的瓶颈.它不需要安装,自动给出分析结果;而statspack需要安装,生成的分析报告需要DBA进行分析.
1、ADDM工具要求系统参数 statistics_level设置为typical(推荐)或all,10G系统默认为typical了.
SQL> ALTER SESSION SET STATISTICS_LEVEL = TYPICAL;
2、先获取到两次AWR快照的ID
SQL>select snap_id from (SELECT * FROM dba_hist_snapshot ORDER BY snap_id desc)where rownum <= 2;
SNAP_ID
----------
261
262
3、然后创建优化任务,并执行
SQL> @ D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\addmrpt.sql
输入begin_snap 的值: 261 --根据上面的查询结果输入
输入 end_snap 的值: 262
输入report_name 的值:
Report written to D:\Program Files\addmrpt_1_261_262.txt, 查看文件内容即可.
此外,如果是RAC环境下,可以执行addmrpti.sql,这脚本的执行,会多出要求输入DB ID和instance ID的要求.
二、STA(SQLTuning Advisor)
ADDM得出了诊断结果,并给出了优化建议.DBA就可以使用STA的建议进行语句的优化.使用STA一定要保证优化器是CBO模式下.
(--查询优化器的模式:
select *from v$sys_optimizer_env;
--修改模式(10g的默认值就是all_rows ):
SQL> ALTER SESSION SET OPTIMIZER_MODE=all_rows;
模式的值必须来自 first_rows_1000,first_rows_100, first_rows_10, first_rows_1, first_rows, all_rows, choose, rule之间.)
1、创建优化任务并执行
sql>
DECLARE
my_task_nameVARCHAR2(30);
my_sqltextCLOB;
BEGIN
my_sqltext:= 'select * from scott.t_tmp_billlog';
--创建任务
my_task_name:= DBMS_SQLTUNE.CREATE_TUNING_TASK(
sql_text=> my_sqltext,
user_name=> 'SCOTT',
scope =>'COMPREHENSIVE',
time_limit=> 60,
task_name=> 'TEST_ADDM_task',
description=> 'Task to tune a query on a specified PRODUCT');
--执行任务
dbms_sqltune.Execute_tuning_task(task_name => 'TEST_ADDM_task');
END;
/
--DBMS_SQLTUNE.CREATE_TUNING_TASK就是用来创建优化任务的函数
FUNCTION create_tuning_task(
sql_text INCLOB, --需要优化的语句
bind_list INsql_binds := NULL,
user_name INVARCHAR2 := NULL, --该语句通过哪个用户执行
scope INVARCHAR2 := SCOPE_COMPREHENSIVE, --优化范围(limited或comprehensive)
time_limitIN NUMBER := TIME_LIMIT_DEFAULT, --优化过程的时间限制
task_name INVARCHAR2 := NULL, --优化任务名称
descriptionIN VARCHAR2 := NULL)
RETURN VARCHAR2;
-- PROCEDUREexecute_tuning_task(task_name IN VARCHAR2); --是执行优化的方法.
2、查看优化建议结果用 report_tuning_task函数:
SQL> set serveroutput on;
SQL>SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('TEST_ADDM_task') FROM DUAL;
3. 如需要再次运行任务,先要把刚才的任务删除:
-- PROCEDUREdrop_tuning_task(task_name IN VARCHAR2);
SQL> exec dbms_sqltune.drop_tuning_task(task_name =>'TEST_ADDM_task');
关于更多的方法,可以查看 SYS.dbms_sqltune 包.
原文出自【比特网】,转载请保留原文链接:http://soft.chinabyte.com/database/57/12199057.shtml
一、ADDM提供了一个整体的优化方案.基于一段时间内的AWR snapshots可以执行ADDM 分析,可以诊断在这段期间内数据库可能存在的瓶颈.它不需要安装,自动给出分析结果;而statspack需要安装,生成的分析报告需要DBA进行分析.
1、ADDM工具要求系统参数 statistics_level设置为typical(推荐)或all,10G系统默认为typical了.
SQL> ALTER SESSION SET STATISTICS_LEVEL = TYPICAL;
2、先获取到两次AWR快照的ID
SQL>select snap_id from (SELECT * FROM dba_hist_snapshot ORDER BY snap_id desc)where rownum <= 2;
SNAP_ID
----------
261
262
3、然后创建优化任务,并执行
SQL> @ D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\addmrpt.sql
输入begin_snap 的值: 261 --根据上面的查询结果输入
输入 end_snap 的值: 262
输入report_name 的值:
Report written to D:\Program Files\addmrpt_1_261_262.txt, 查看文件内容即可.
此外,如果是RAC环境下,可以执行addmrpti.sql,这脚本的执行,会多出要求输入DB ID和instance ID的要求.
二、STA(SQLTuning Advisor)
ADDM得出了诊断结果,并给出了优化建议.DBA就可以使用STA的建议进行语句的优化.使用STA一定要保证优化器是CBO模式下.
(--查询优化器的模式:
select *from v$sys_optimizer_env;
--修改模式(10g的默认值就是all_rows ):
SQL> ALTER SESSION SET OPTIMIZER_MODE=all_rows;
模式的值必须来自 first_rows_1000,first_rows_100, first_rows_10, first_rows_1, first_rows, all_rows, choose, rule之间.)
1、创建优化任务并执行
sql>
DECLARE
my_task_nameVARCHAR2(30);
my_sqltextCLOB;
BEGIN
my_sqltext:= 'select * from scott.t_tmp_billlog';
--创建任务
my_task_name:= DBMS_SQLTUNE.CREATE_TUNING_TASK(
sql_text=> my_sqltext,
user_name=> 'SCOTT',
scope =>'COMPREHENSIVE',
time_limit=> 60,
task_name=> 'TEST_ADDM_task',
description=> 'Task to tune a query on a specified PRODUCT');
--执行任务
dbms_sqltune.Execute_tuning_task(task_name => 'TEST_ADDM_task');
END;
/
--DBMS_SQLTUNE.CREATE_TUNING_TASK就是用来创建优化任务的函数
FUNCTION create_tuning_task(
sql_text INCLOB, --需要优化的语句
bind_list INsql_binds := NULL,
user_name INVARCHAR2 := NULL, --该语句通过哪个用户执行
scope INVARCHAR2 := SCOPE_COMPREHENSIVE, --优化范围(limited或comprehensive)
time_limitIN NUMBER := TIME_LIMIT_DEFAULT, --优化过程的时间限制
task_name INVARCHAR2 := NULL, --优化任务名称
descriptionIN VARCHAR2 := NULL)
RETURN VARCHAR2;
-- PROCEDUREexecute_tuning_task(task_name IN VARCHAR2); --是执行优化的方法.
2、查看优化建议结果用 report_tuning_task函数:
SQL> set serveroutput on;
SQL>SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('TEST_ADDM_task') FROM DUAL;
3. 如需要再次运行任务,先要把刚才的任务删除:
-- PROCEDUREdrop_tuning_task(task_name IN VARCHAR2);
SQL> exec dbms_sqltune.drop_tuning_task(task_name =>'TEST_ADDM_task');
关于更多的方法,可以查看 SYS.dbms_sqltune 包.
原文出自【比特网】,转载请保留原文链接:http://soft.chinabyte.com/database/57/12199057.shtml
相关文章推荐
- ORACLE 10G ADDM诊断工具的使用
- Oracle 10g 数据库导入工具impdp使用Windows的网络驱动器 ORA-31640
- Oracle ADDM 自动诊断监视工具 介绍
- Oracle10g数据库自动诊断监视工具(ADDM)使用指南
- Oracle ADDM 自动诊断监视工具 介绍
- Oracle诊断工具RDA使用记录
- Oracle ADDM 自动诊断监视工具 介绍
- Oracle10g数据库自动诊断监视工具(ADDM)使用指南
- Oracle ADDM 自动诊断监视工具 介绍
- oracle诊断工具-RDA使用
- [转]Oracle10g数据库自动诊断监视工具(ADDM)使用指南
- oracle 10g exp/imp导出导入工具的使用
- Oracle ADDM 自动诊断监视工具 介绍
- Oracle ADDM 自动诊断监视工具 介绍
- Oracle ADDM 自动诊断监视工具介绍
- Oracle ADDM 自动诊断监视工具 介绍
- Oracle ADDM 自动诊断监视工具 介绍
- 使用 Diagwait 作为诊断工具,获取用于诊断 Oracle Clusterware 节点驱逐的更多信息 (文档 ID 1525761.1)
- ORACLE的statistics_level的三种状态以及oracle自动诊断工具ADDM
- Oracle_ADDM_自动诊断监视工具介绍