oracle11g:自动SQL优化

Oracle 11g引入了自动SQL优化。这本书的许多章节都详细涵盖了这个主题,因此本节只作概述。Oracle 11g根据AWR(Automatic Workload Repository,自动负载信息库)的统计信息针对产生较大性能影响的SQL语句运行SQL 优化顾问(SQL Tuning Advisor)。AWR的统计信息用来生成一个SQL语句列表并根据它们过去一周对系统性能的影响进行排序,这个SQL列表会自动排除所有被断定为不太容易优化的SQL语句,比如并行查询、DML、DDL和任何由并发问题引起的性能问题。SQL优化顾问生成优化SQL的建议,这类建议中可能有SQL配置文件(Profile)(利用统计信息)。当建议使用SQL配置文件的时候,这些配置文件会进行性能测试,如果测试结果显示至少有三倍的改进,并且SQL优化任务参数ACCEPT_SQL_PROFILES设置为true,这个建议就会被接受;如果ACCEPT_SQL_PROFILES被设置为false,这个建议会被报告。您也可以针对任何查询单独执行这些步骤。
通过调用dbms_auto_task_admin程序包的enable和disable过程就可以控制自动SQL优化任务的执行。当启用时,SQL 优化顾问就在定义好的维护时间窗口里运行,默认的维护时间窗口参考下面的表1-2。
表1-2  Oracle 11g默认维护窗口

窗 口 名 称描    述
MONDAY_WINDOW星期一晚上10点开始到第二天临晨2点
TUESDAY_WINDOW星期二晚上10点开始到第二天临晨2点
WEDNESDAY_WINDOW星期三晚上10点开始到第二天临晨2点
THURSDAY_WINDOW星期四晚上10点开始到第二天临晨2点
FRIDAY_WINDOW星期五晚上10点开始到第二天临晨2点
SATURDAY_WINDOW星期六晚上10点开始并持续20小时
SUNDAY_WINDOW星期日晚上10点开始并持续20小时

 

 
启用和禁用自动SQL优化:
exec dbms_auto_task_admin.enable(client_name => 'sql tuning advisor',operation =>
NULL, window_name => NULL);
 
exec dbms_auto_task_admin.disable(client_name => 'sql tuning advisor', operation
=> NULL,window_name => NULL);
配置自动SQL优化:
exec dbms_sqltune.set_tuning_task_parameter (task_name =>
'SYS_AUTO_SQL_TUNING_TASK', parameter => 'ACCEPT_SQL_PROFILES', value => 'TRUE');
以下是控制自动SQL优化任务的dbms_sqltune选项:
●         INTERRUPT_TUNING_TASK:中断正在执行的任务,得到中间结果并正常退出。
●         RESUME_TUNING_TASK:恢复先前被中断的任务。
●         CANCEL_TUNING_TASK:取消正在执行的任务,清除任务的所有结果。
●         RESET_TUNING_TASK:重置正在执行的任务,清除任务的所有结果并返回到其初始状态。
●         DROP_TUNING_TASK:删除一个任务,清除所有与该任务相关的结果。
第5章将展示如何在企业管理器中通过简单的“点击运行”来使用自动SQL优化功能。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值