利用sqltune优化sql

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

ECLAREoracle

task_name VARCHAR2 (20);优化

sqltext CLOB;server

BEGINip

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

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

bind_list => null,效率

user_name => 'SA',select

scope => 'COMPREHENSIVE',方法

time_limit => 60,

task_name => 'tunetask',

description => 'Tuning Task'

);

END;

/

二、执行任务

exec dbms_sqltune.execute_tuning_task('tunetask');

检查任务执行状态:

SELECT status FROM USER_ADVISOR_TASKS WHERE task_name = 'tunetask';

三、生产分析报告

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

相关文章
相关标签/搜索