RHCE9 1月周末班 正在授课 欢迎试学         2026!志存高远,启航新程         锁定 2026年首 OCP 周末班,以 ORACLE 为基,其他数据库         KCP金仓数据库认证专家         19cOCP 9月周末班 正在授课 欢迎试听         Oracle,Redhat暑假班学习计划         RHCA培训+认证,助同学们实现梦想         PostgreSQL 高级认证考试         PostgreSQL 中级认证考试(DBA 方向)         PostgreSQL 初级认证考试         

利用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>>

课程名称 开课时间 上课类型 状态
PGCE 专家 1月 周末班 授课中...
OCP认证培训 1月 周末班 授课中...
RHCE培训 1月 周末班 授课中...
OCP培训 3月 精英班 报名中...
OCM培训 3月 周末班 报名中...
RHCE培训 常年 周末班 报名中...
MySQL培训 常年 周末班 报名中...
<<