zoukankan      html  css  js  c++  java
  • 使用ORACLE SQL Tuning advisor快速优化低效的SQL语句

    ORACLE10G以后版本的SQL Tuning advisor可以从以下四个方面给出优化方案

      (1)为统计信息丢失或失效的对象收集统计信息
      (2)考虑优化器的任何数据偏差、复杂谓词或失效的统计信息
      (3)重新构建 SQL 以优化性能
      (4)提出新索引建议


    下面来实际测试:


    1、为SQL_id创建一个STA(SQL Tuning advisor)分析任务(使用SYS用户执行)

    SQL> variable task_li_test varchar2(2000);

    SQL>exec :task_li_test:=dbms_sqltune.create_tuning_task(sql_id=>'1z9atcd704psu',time_limit=>600,task_name=>'li_sql_1');

    2、执行上面创建的STA(需要一定的时间)

    SQL> exec dbms_sqltune.execute_tuning_task(task_name=>'li_sql_1');

    3、查询优化任务创建与执行的情况

    selecta.owner,b.task_id,b.task_name,a.created from dba_advisor_tasks a,dba_advisor_log b where a.task_id=b.task_id and a.task_name='li_sql_1'

    owner

    task_id

    task_name

    created

    SYS

    106698

        li_sql_1

    2013-9-14 16:57

    4、查看任务优化报告(优化的详细内容)

    SQL>select dbms_sqltune.report_tuning_task('li_sql_1') from dual;

    5、接受建议的 SQL 概要文件,即创建SQL_Profle

    SQL> execute dbms_sqltune.accept_sql_profile(task_name => 'li_sql_1',task_owner =>'SYS', replace => TRUE);

    6、查看第5步创建起来的SQL_Profile信息

    SQL>select a.name,a.task_id,a.created from dba_sql_profiles a,dba_advisor_log b where a.task_id=b.task_id and b.task_name='li_sql_1'

    NAME

    TASK_ID

     CREATED

    SYS_SQLPROF_01411bdf99410002

    106699

        14-9月 -13 05.49.00.000000 下午

    7、再次执行SQLID为‘1z9atcd704psu’的语句

    7.1、执行时间由原来的6分钟降为3秒

    7.2、查看执行计划,执行计划中包含下面信息,说明是使用了创建的SQL_Profile所起到的效果

      - SQL profile SYS_SQLPROF_01411bdf99410002used for this statement

    8、删除SQL_Profile

    SQL>exec dbms_sqltune.drop_sql_profile(name =>'SYS_SQLPROF_01411bdf99410002');

    9、删除优化任务

    SQL> exec dbms_sqltune.drop_tuning_task(task_name => 'li_sql_1');


      本文为“踩点”原创,转发请说明出处。谢谢!

  • 相关阅读:
    大二下每周总结
    大二下学期阅读笔记(人月神话)
    大二下学期第一次结对作业(第二阶段)
    大二下学期第一次结对作业(第二阶段)
    大二下学期项目练习(滑屏数据展示)
    elasticSearch中使用聚合查询后只显示10个bucket的问题
    elasticsearch Terms Query 实现类似于sql in查询
    crontab定时调用shell脚本
    java使用static静态变量
    ElasticSearch 复合数据类型——数组,对象和嵌套
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3322914.html
Copyright © 2011-2022 走看看