重庆思庄“清明节”放假通知         19cOCP 4月周末班,正在授课 欢迎试听         RHCE8 4月周末班 正在授课 欢迎试听         红帽RHCE8 4月周末班 正在授课,欢迎试听         OCM周末班 正在报名 ,欢迎垂询!         MySQL认证周末班 正在招生 欢迎垂询!         

利用sqltune优化sql

更新时间: 2019-03-27 16:40

对低效的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的环境中可使用。

开班信息MORE>>

课程名称 开课时间 上课类型 状态
RHCE培训 4月 周末班 授课中...
RHCE培训 4月 周末班 报名中...
OCP培训 4月 周末班 授课中...
OCP培训 4月 周末班 报名中...
OCM培训 4月 周末班 报名中...
MySQL培训 常年 周末班 报名中...
RAC实用技术 常年 周末、脱产 报名中...
<<