oracle spa sta 使用,Oracle10g ADDM和STA使用

Oracle10g ADDM和STA使用

Oracle10g中就推出了新的优化诊断工具:数据库自动诊断监视工具ADDM和SQL优化建议工具STA。这两个工具的结合使用,能使DBA节省大量优化时间,也大大减少了系统宕机的危险。简单点说,ADDM就是收集相关的统计数据到自动工作量知识库(Automatic Workload Repository AWR)中,而STA则根据这些数据,给出优化建议。

一、ADDM(Automatic Database Diagnostic Monitor)

ADDM提供了一个整体的优化方案。基于一段时间内的AWR snapshots可以执行ADDM 分析,它可以帮我们诊断在这段期间内数据库可能存在的瓶颈。

1、这个工具的使用非常简单,它是不需要安装的。但要求系统参数STATISTICS_LEVEL设置为TYPICAL(推荐)或ALL,系统默认为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

----------

1200

1199

3、然后创建优化任务,并执行

SQL> @?/rdbms/admin/addmrpt.sql

输入 begin_snap 的值:  1199

输入 end_snap 的值:  1200

输入 report_name 的值:  

Report written to addmrpt_1_1199_1200.txt

查看addmrpt_1_1199_1200.txt文件内容即可。

此外,如果是RAC环境下,可以执行addmrpti.sql,这脚本的执行,会多出要求输入DB ID和instance ID的要求。

4、诊断结果分析

第一部分包括一些基础信息,分析时间段、DB和instance ID&名字、主机名字、Oracle版本、快照范围、数据库消耗时间、多少个活动会话。

第二部分就是ADDM发现的问题,并给出的相应建议。

第三部分是关于此次优化建议的一些附加信息。

第四部分是对诊断报告中用到的术语的解释:

DATABASE TIME:是ADDM的度量数据。从用户角度看:这是从向数据库请求开始,消耗在用户等待响应上的全部时间(不包括网络响应时间);从数据库实例角度看:前台进程消耗在等待一种数据库资源(例如,IO读)、CPU运行和等待CPU释放(队列等待)的总共时间。ADDM分析的目标就尽量降低这个数字,也就是减少实例响应时间。

AVERAGE DATABASE LOAD:所有能统计到的有多少用户(也称为“活动会话”)等待实例响应。这是实例负荷的度量指标。平均数据库负荷是由整个分析计算出来的平均负荷。通过“Database Time”除以分析周期时间得到。例如,分析周期时30分钟,而数据库运行消耗时间是90分钟,那就说明平均有3个用户在等待响应。

IMPACT:每一个找到的问题都有“影响”这一项。“影响”是数据库消耗时间用于处理这个问题的时间不分。假定我们所找到的这个问题完全解决,那么数据库消耗时间就会相应减少“影响”时间。

BENEFIT:每一个找到的问题都“受益”这一项。如果所有建议操作得到实施,ADDM分析估计数据库消耗时间能减少“受益”的全部时间。

二、STA(SQL Tuning Advisor)

ADDM得出了诊断结果,并给出了优化建议。通常90%的性能问题都是由于应用引起的,而应用问题肯定离不开问题语句。那么如何优化这些语句呢,以前靠的是DBA的经验,现在就可以使用STA了。使用STA一定要保证优化器是CBO模式下。

1、创建优化任务并执行

SQL> DECLARE

my_task_name VARCHAR2(30);

my_sqltext CLOB;

BEGIN

my_sqltext := 'select a.table_name, b.object_id from bigtab b, smalltab a';

my_task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK(

sql_text => my_sqltext,

user_name => 'DEMO',

scope => 'COMPREHENSIVE',

time_limit => 60,

task_name => 'TEST_sql_tuning_task',

description => 'Task to tune a query on a specified PRODUCT');

dbms_sqltune.Execute_tuning_task (task_name => 'TEST_sql_tuning_task');

END;

/

DBMS_SQLTUNE.CREATE_TUNING_TASK 就是用来创建优化任务的函数。其中,sql_text是需要优化的语句,user_name是该语句通过哪个用户执行,scope是优化范围(limited或comprehensive),time_limit优化过程的时间限制,task_name优化任务名称,description优化任务描述。dbms_sqltune.Execute_tuning_task是执行优化的函数。

2、查看优化建议结果

SQL> set long 10000

SQL> set linesize 100

SQL> SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('TEST_sql_tuning_task') FROM DUAL;

优化建议结果分为三部分:

第一部分是关于这次优化任务的基本信息:如任务名称、执行时间、范围、涉及到的语句等等。

第二部分是关于这次优化任务的所找到的问题以及给出的优化建议。前面先给出了问题描述;然后是建议的具体内容;最后是相关注意事项。

最后,报告还给出了原有的查询计划,以及采用优化建议以后的查询计划的对比。可以看出COST值大大下降。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值