Chinaunix首页 | 论坛 | 博客
  • 博客访问: 219262
  • 博文数量: 49
  • 博客积分: 1785
  • 博客等级: 上尉
  • 技术积分: 565
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-01 10:30
文章分类

全部博文(49)

文章存档

2013年(2)

2012年(7)

2011年(11)

2010年(6)

2009年(23)

我的朋友

分类: Oracle

2010-07-19 10:30:44

Automatic SQL Tuning 学习
1.如果是非dba用户,要赋予advisor权限
2.创建tuning任务
    使用在awr报表中发现有问题的sql进行tuning,还可以直接使用sql_id,cache cursor,sqlset(sql集)等方法
        创建该tuning任务
        SET SERVEROUTPUT ON

        -- Tuning task created for specific a statement from the AWR.
        DECLARE
          l_sql_tune_task_id  VARCHAR2(100);
        BEGIN
          l_sql_tune_task_id := DBMS_SQLTUNE.create_tuning_task (
                                  begin_snap  => 369,
                                  end_snap    => 370,
                                  sql_id      => '3a13916h8yz59',
                                  scope       => DBMS_SQLTUNE.scope_comprehensive,
                                  time_limit  => 60,
                                  task_name   => '3a13916h8yz59_AWR_tuning_task',
                                  description => 'Tuning task for statement 3a13916h8yz59 in AWR.');
          DBMS_OUTPUT.put_line('l_sql_tune_task_id: ' || l_sql_tune_task_id);
        END;
        /
3.执行tuning任务
        EXEC DBMS_SQLTUNE.execute_tuning_task(task_name => '3a13916h8yz59_AWR_tuning_task');
4.查看tuning任务的执行情况
        select * from dba_advisor_log
        如果发现该任务状态是COMPLETED的时候,表示tuning已经完成了
5.查看tuning的结果
    select dbms_sqltune.report_tuning_task('3a13916h8yz59_AWR_tuning_task') from dual
阅读(1272) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~