11g新特性-自动sql调优(Automatic SQL Tuning)

在Oracle 10g中,引进了自动sql调优特性。此外,ADDM也会监控捕获高负载的sql语句。

在Oracle 11g中,通过运行sql tuning advisor加强了自动sql调优功能。默认情况下是每天夜间通过自动任务的方式运行”自动sql调优“。

自动sql调优的过程:

1.识别需要调优的sql语句  根据AWR中的CPU和I/O负载来识别

2.调优,生成新的sql profile

  在维护窗口(maintenance window),自动sql调优任务运行时,上一步识别出的sql语句会被“sql tuning advisor”调优。并产生相应的sql profiles。如果发现有统计信息丢失或过期,会通知GATHER_STATS_JOB

3.测试新的sql profile  benefit%=(time_old – time_new)/(time_old)

4.执行符合标准的新的sql profile

  可以查看dba_sql_profiles,有哪些sql profiles是被数据库自动执行的(type 列)

5.DBA可以产生自动sql调优活动的报告。可以确认产生的sql profile是否有效、删除新产生的sql profile等。

自动sql调优不会进行调优的sql:

-Ad hoc语句和很少重复执行的sql

-并行查询

-长时间运行的查询。对于长时间运行的sql,如果使用产生的sql profile进行测试,还是会需要长时间运行,就会忽略这样的sql。如果使用新产生的sql profile会显著减少时间,就不会忽略这类长时间运行的sql。

-递归sql

-DDL语句

-使用了insert、delete的DML语句 上面的语句,可以手动使用SQL Tuning Advisor进行调优。

上面的语句,可以手动使用SQL Tuning Advisor进行调优。

配置自动sql调优

使用dbms_sqltune包进行配置。 在maintenance window,自动sql调优特性会启动一个job(sys_auto_sql_tuning_task)。产生一个需要调优的sql 列表,然后根据重要性一次进行调优。 一般这个job会运行一小时,可以设置该job设置: dbms_sqltune.set_tuning_task_parameter('SYS_AUTO_SQL_TUNING_TASK','TIME_LIMIT',7200);

begindbms_sqltune.set_tuning_task_parameter('SYS_AUTO_SQL_TUNING_TASK','LOCAL_TIME_LIMIT',1400);dbms_sqltune.set_tuning_task_parameter('SYS_AUTO_SQL_TUNING_TASK','ACCEPT_SQL_PROFILES','TRUE');dbms_sqltune.set_tuning_task_parameter('SYS_AUTO_SQL_TUNING_TASK','MAX_SQL_PROFILES_PER_EXEC',50);dbms_sqltune.set_tuning_task_parameter('SSY_AUTO_SQL_TUNING_TASK','MAX_AUTO_SQL_PROFILES',10002);
end;

管理自动sql调优任务

1.开启自动sql调优

begindbms_auto_task_admin.enable(client_name => 'sql tuning advisor',operation => 'NULL',#在所有维护窗口都开启window_name => 'NULL');
end;

2.关闭自动sql调优

begindbms_auto_task_admin.disable(client_name => 'sql tuning advisor',operation => 'NULL',window_name => 'NULL');
end;

生成文本格式的自动sql调优建议报告:

SQL> variable my_rept CLOB;
SQL> begin :my_rept := dbms_sqltune.report_auto_tuning_task(begin_exec=>NULL,end_exec=>NULL,type=>'TEXT',level=> 'TYPICAL',section=>'ALL',object_id=>NULL,result_limit=>NULL);end;
SQL> print :my_rept

相关视图:

-DBA_ADVISOR_EXECUTIONS
-DBA_ADVISOR_SQLSTATS
-DBA_ADVISOR_SQLPLANS  

转载于:https://www.cnblogs.com/wangchaoyuana/p/7532070.html

11g新特性-自动sql调优(Automatic SQL Tuning)相关推荐

  1. 《高性能SQL调优精要与案例解析》一书谈主流关系库SQL调优(优化TUNING)技术精髓之——执行计划获取及理解

    <高性能SQL调优精要与案例解析>中,主要以Oracle为样本讲解了SQL调优(优化&TUNING),其中,前面博文中本人也说到,就SQL调优的思路.方法和步骤来说,各关系库几乎是 ...

  2. Oracle中SQL调优(SQL TUNING)之最权威获取SQL执行计划大全

    该文档为根据相关资料整理.总结而成,主要讲解Oracle数据库中,获取SQL语句执行计划的最权威.最正确的方法.步骤,此外,还详细说明了每种方法中可选项的意义及使用方法,以方便大家和自己日常工作中查阅 ...

  3. Oracle 11g 新特性 -- 自动诊断资料档案库(ADR) 说明

    一.自动诊断资料档案库(ADR) 1.1 ADR 说明 ADR (AutomaticDiagnostic Repository) ,ADR 是一个基于文件的资料档案库,用于存放数据库诊断数据(如跟踪. ...

  4. SQL调优(SQL TUNING)之远程支持完成性能大幅优化

    前几天,一个朋友找到我,说一个SQL性能有问题,看看能不能优化,下面为过程: 雪豹 9:35:10 在吗 兰花岛主 15:07:39 忙忘了,有事儿? 雪豹 15:07:49 嗯 雪豹 15:07:5 ...

  5. SQL调优(SQL TUNING)并行查询提示(Hints)之pq_distribute的使用

    pq_distribute提示通常被用于提升数据仓库中分区表间的连接操作性能. pq_distribute提示允许你确定参与连接的表数据行在生产和消费并行查询服务进程间如何分配. pq_distrib ...

  6. oracle pq distribute,SQL调优(SQL TUNING)并行查询提示(Hints)之pq_distribute的使用

    pq_distribute提示通常被用于提升数据仓库中分区表间的连接操作性能. pq_distribute提示允许你确定参与连接的表数据行在生产和消费并行查询服务进程间如何分配. pq_distrib ...

  7. sql调优的几种方式_「数据库调优」屡试不爽的面试连环combo

    点赞再看,养成习惯,微信搜索[三太子敖丙]关注这个互联网苟且偷生的工具人. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的 ...

  8. 11g新特性-SQL Plan Management

    在11g之前版本,提供了stored outlines(sql概要)特性来保存sql的执行计划. 在11g中,引入了一个新的特性sql计划管理(sql plan management)特性来保存sql ...

  9. ORACLE 11g新特性中文版

    Oracle 11g 新特性 摘自ITPUB的love_zz的帖子 http://www.itpub.net/712880.html Oracle 11g 现在已经开始进行beta测试,预计在2007 ...

最新文章

  1. .net的垃圾回收机制[转]
  2. Swift的数组与OC中数组的区别
  3. php 两次post,ajax跨域往php程序post数据时,php程序总是执行两次的解决办法
  4. 7-37 组个最小数 (20分)_波音737高度计上蹊跷的“8英尺”,09年土耳其航空1951号航班空难...
  5. sql关系数据库计算机,关系数据库语言SQL - 淮阴工学院计算机工程实验中 ….ppt...
  6. 如何编写字符设备驱动
  7. 随想录(常用的c库)
  8. 走在技术的前沿 创造一代名品
  9. DOS获取注册表键值
  10. java不解压获取压缩包(zip,rar)文件列表或文本文件内容
  11. 用musescore做吉他弹唱谱
  12. B5服务器内昵称注册,CSGO-B5开放注册
  13. Linux 查看显卡型号
  14. CentOS 7.5版本成功安装后修改基本配置以及可视化远程桌面解决办法
  15. 目标检测 YOLOv5 - 模型的样子
  16. 如何获取AK/SK?(IAM用户)
  17. STM32F103+VL53L0测距(一)
  18. 在Unity实现Canny边缘检测
  19. python安装opencv问题解决
  20. JAVA程序员常用网址

热门文章

  1. jquery datepicker 点击日期控件不会自动更新input的值
  2. 初探SQL Server 2008商业智能
  3. PHP实现多文件上传
  4. ServiceComb抛出llegalStateException: The schema(id=[xxx]) ...异常解决办法
  5. css compressor java_利用YUI Compressor压缩JS/CSS之终极秘籍
  6. linux下执行shell修改用户密码,[转] 关于linux下通过shell命令(自动)修改用户密码...
  7. kettle连接mysql教程_kettle 连接 mysql8
  8. 用java解决约瑟夫循环问题_Java采用循环链表结构求解约瑟夫问题
  9. const修饰是指针和常量
  10. ElasticSearch和mysql对比