利用sqltune优化sql

对低效的sql做优化,传统的方式是产生执行计划后,分析执行路径、统计信息等等有无异常,调优过程主要依赖dba的经验。利用dbms_sqltune包可以简化该过程,oracle产生执行计划的同时,针对低效sql会主动给出优化建议,以提高调优效率。方法如下。1、创建针对低效sql的优化任务

ECLARE

task_name VARCHAR2 (20);

sqltext CLOB;

BEGIN

sqltext := 'select sender from DATA_BLKLISTS_HIS where sender=''86187xxxxxxxx''';

task_name := dbms_sqltune.create_tuning_task (sql_text=> sqltext,

bind_list => null,

user_name => 'SA',

scope => 'COMPREHENSIVE',

time_limit => 60,

task_name => 'tunetask',

description => 'Tuning Task'

);

END;

/

2、执行任务

exec dbms_sqltune.execute_tuning_task('tunetask');

检查任务执行状态:

SELECT status FROM USER_ADVISOR_TASKS WHERE task_name = 'tunetask';

3、生产分析报告

SET LONG 999999

set serveroutput on size 999999

SET LINESIZE 100

SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('tunetask') FROM DUAL;

关注报告输出的recommendation,对有问题的sql,oracle会给出优化建议。

注:该方法相当于addm advisor的命令方式,在无法使用EM的环境中可使用。

转载于:https://my.oschina.net/u/3635497/blog/3029265

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值