Oracle 11g DBMS_SQLTUNE

  • 1. 创建调优任务
    • 1.1 语法
  • 2. 执行调优任务
    • 2.1语法
  • 3. 查看调优报告
    • 3.1 语法
  • 4. 删除SQL调优任务
    • 4.1 语法
  • 5. 示例
  • 6. 参考文档

1. 创建调优任务

1.1 语法

  • SQL text format:

    DBMS_SQLTUNE.CREATE_TUNING_TASK(sql_text         IN CLOB,bind_list        IN sql_binds := NULL,user_name        IN VARCHAR2  := NULL,scope            IN VARCHAR2  := SCOPE_COMPREHENSIVE, --limited/comprehensive,默认comprehensive值time_limit       IN NUMBER    := TIME_LIMIT_DEFAULT,task_name        IN VARCHAR2  := NULL,description      IN VARCHAR2  := NULL)
    RETURN VARCHAR2;
    
  • SQL ID format:
    DBMS_SQLTUNE.CREATE_TUNING_TASK(sql_id           IN VARCHAR2,plan_hash_value  IN NUMBER    := NULL,scope            IN VARCHAR2  := SCOPE_COMPREHENSIVE,--limited/comprehensive,默认comprehensive值time_limit       IN NUMBER    := TIME_LIMIT_DEFAULT,--默认1800stask_name        IN VARCHAR2  := NULL,description      IN VARCHAR2  := NULL)
    RETURN VARCHAR2;
    
  • Workload Repository format:
    DBMS_SQLTUNE.CREATE_TUNING_TASK(begin_snap       IN NUMBER,end_snap         IN NUMBER,sql_id           IN VARCHAR2,plan_hash_value  IN NUMBER    := NULL,scope            IN VARCHAR2  := SCOPE_COMPREHENSIVE,--limited/comprehensive,默认comprehensive值time_limit       IN NUMBER    := TIME_LIMIT_DEFAULT,--默认1800stask_name        IN VARCHAR2  := NULL,description      IN VARCHAR2  := NULL)
    RETURN VARCHAR2;
    
  • SQLSET format:
    DBMS_SQLTUNE.CREATE_TUNING_TASK(sqlset_name       IN VARCHAR2,basic_filter      IN VARCHAR2 :=  NULL,object_filter     IN VARCHAR2 :=  NULL,rank1             IN VARCHAR2 :=  NULL,rank2             IN VARCHAR2 :=  NULL,rank3             IN VARCHAR2 :=  NULL,result_percentage IN NUMBER   :=  NULL,result_limit      IN NUMBER   :=  NULL,scope             IN VARCHAR2 :=  SCOPE_COMPREHENSIVE,--limited/comprehensive,默认comprehensive值time_limit        IN NUMBER   :=  TIME_LIMIT_DEFAULT,--默认1800stask_name         IN VARCHAR2 :=  NULL,description       IN VARCHAR2 :=  NULLplan_filter       IN VARCHAR2 :=  'MAX_ELAPSED_TIME',sqlset_owner      IN VARCHAR2 :=  NULL)
    RETURN VARCHAR2;
    
  • SQL Performance Analyzer format:
    DBMS_SQLTUNE.CREATE_TUNING_TASK(spa_task_name     IN VARCHAR2,spa_task_owner    IN VARCHAR2 :=  NULL,spa_compare_exec  IN VARCHAR2 :=  NULL,basic_filter      IN VARCHAR2 :=  NULL,time_limit        IN NUMBER   :=  TIME_LIMIT_DEFAULT,task_name         IN VARCHAR2 :=  NULL,description       IN VARCHAR2 :=  NULL)RETURN VARCHAR2;
    

2. 执行调优任务

2.1语法

DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name         IN VARCHAR2,execution_name    IN VARCHAR2               := NULL,execution_params  IN dbms_advisor.argList   := NULL,execution_desc    IN VARCHAR2               := NULL)RETURN VARCHAR2;DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name         IN VARCHAR2,execution_name    IN VARCHAR2               := NULL,execution_params  IN dbms_advisor.argList   := NULL,execution_desc    IN VARCHAR2               := NULL);示例:
EXEC DBMS_SQLTUNE.EXECUTE_TUNING_TASK(:stmt_task);

3. 查看调优报告

3.1 语法

DBMS_SQLTUNE.REPORT_TUNING_TASK(task_name       IN   VARCHAR2,type            IN   VARCHAR2   := 'TEXT',level           IN   VARCHAR2   := 'TYPICAL', --有 BASIC/TYPICAL/ALL 参数section         IN   VARCHAR2   := ALL,       --有SUMMARY/FINDINGS/PLAN/INFORMATION/ERROR/ALL 参数object_id       IN   NUMBER     := NULL,result_limit    IN   NUMBER     := NULL,owner_name      IN    VARCHAR2  := NULL,execution_name  IN  VARCHAR2    := NULL)
RETURN CLOB;示例:
-- Get the whole report for the single statement case.
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK(:stmt_task) from dual;-- Show me the summary for the sts case.
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK(:sts_task, 'TEXT', 'TYPICAL', 'SUMMARY')
FROM DUAL;-- Show me the findings for the statement I'm interested in.
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK(:sts_task, 'TEXT', 'TYPICAL', 'FINDINGS', 5) from dual;

4. 删除SQL调优任务

4.1 语法

DBMS_SQLTUNE.DROP_TUNING_TASK(task_name         IN VARCHAR2);

5. 示例

SQL_ID方式

--创建调优任务并执行
DECLAREmy_task_name VARCHAR2(30);
BEGINmy_task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK(sql_id      => '18j0qammkwqfr',time_limit  => 3600,task_name   => 'SQL_TUNE_18j0qammkwqfr',description => 'Task to tune a query');DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name => 'SQL_TUNE_18j0qammkwqfr');
END;/-- 查看调优任务状态
select t.task_name, t.ADVISOR_NAME, t.STATUSfrom dba_advisor_tasks twhere t.task_name = 'SQL_TUNE_18j0qammkwqfr'TASK_NAME                   ADVISOR_NAME        STATUS--------                  ------------          --------SQL_TUNE_18j0qammkwqfr    SQL Tuning Advisor     COMPLETED-- 查看调优任务报告select  dbms_sqltune.report_tuning_task('SQL_TUNE_18j0qammkwqfr','TEXT','ALL') from dual;GENERAL INFORMATION SECTION
-------------------------------------------------------------------------------
Tuning Task Name   : SQL_TUNE_18j0qammkwqfr
Tuning Task Owner  : SYS
Tuning Task ID     : 5671
Workload Type      : Single SQL Statement
Execution Count    : 1
Current Execution  : EXEC_6034
Execution Type     : TUNE SQL
Scope              : COMPREHENSIVE
Time Limit(seconds): 3600
Completion Status  : COMPLETED
Started at         : 12/15/2018 21:24:39
Completed at       : 12/15/2018 21:25:10-------------------------------------------------------------------------------
Schema Name: SYS
SQL ID     : 18j0qammkwqfr
SQL Text   : update t_objects aset (a.tablespace_name, a.flag) =(select distinct b.tablespace_name, '2'from t_tables bwhere a.owner = b.ownerand a.object_name = b.table_name)where exists (select distinct b.tablespace_namefrom t_tables bwhere a.owner = b.ownerand a.object_name = b.table_name)-------------------------------------------------------------------------------
FINDINGS SECTION (1 finding)
-------------------------------------------------------------------------------1- Alternative Plan Finding
---------------------------Some alternative execution plans for this statement were found by searchingthe system's real-time and historical performance data.The following table lists these plans ranked by their average elapsed time.See section "ALTERNATIVE PLANS SECTION" for detailed information on eachplan.id plan hash  last seen            elapsed (s)  origin          note            -- ---------- -------------------- ------------ --------------- ----------------1 1460256570  2018-12-15/21:09:22       54.846 Cursor Cache    not reproducibleInformation------------ All alternative plans other than the Original Plan could not bereproduced in the current environment.- The plan with id 1 could not be reproduced in the current environment.For this reason, a SQL plan baseline cannot be created to instruct theOracle optimizer to pick this plan in the future.-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------1- Original
-----------
Plan hash value: 3244764335------------------------------------------------------------------------------------------
| Id  | Operation            | Name      | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------
|   0 | UPDATE STATEMENT     |           | 29227 |  2311K|       |   280M  (1)|936:39:02 |
|   1 |  UPDATE              | T_OBJECTS |       |       |       |            |          |
|*  2 |   HASH JOIN SEMI     |           | 29227 |  2311K|  1688K|  6712   (1)| 00:01:21 |
|   3 |    TABLE ACCESS FULL | T_OBJECTS | 29227 |  1341K|       |    71   (2)| 00:00:01 |
|   4 |    VIEW              | VW_SQ_1   |   801K|    25M|       |  4804   (1)| 00:00:58 |
|   5 |     TABLE ACCESS FULL| T_TABLES  |   801K|    20M|       |  4804   (1)| 00:00:58 |
|   6 |   HASH UNIQUE        |           |     5 |   170 |       |  4806   (1)| 00:00:58 |
|*  7 |    TABLE ACCESS FULL | T_TABLES  |    11 |   374 |       |  4805   (1)| 00:00:58 |
------------------------------------------------------------------------------------------Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------1 - SEL$A419B6743 - SEL$A419B674 / A@UPD$14 - SEL$683B0107 / VW_SQ_1@SEL$1E93CC815 - SEL$683B0107 / B@SEL$26 - SEL$1       7 - SEL$1        / B@SEL$1Predicate Information (identified by operation id):
---------------------------------------------------2 - access("A"."OWNER"="ITEM_1" AND "A"."OBJECT_NAME"="ITEM_2")7 - filter("B"."TABLE_NAME"=:B1 AND "B"."OWNER"=:B2)Column Projection Information (identified by operation id):
-----------------------------------------------------------2 - (#keys=2; upd=6,7; cmp=1,3) "A"."OWNER"[VARCHAR2,30], "ITEM_1"[VARCHAR2,30], "A"."OBJECT_NAME"[VARCHAR2,128], "ITEM_2"[VARCHAR2,30], "SYS_ALIAS_2".ROWID[ROWID,10], "A"."FLAG"[VARCHAR2,2], "A"."TABLESPACE_NAME"[VARCHAR2,30]3 - "SYS_ALIAS_2".ROWID[ROWID,10], "A"."OWNER"[VARCHAR2,30], "A"."OBJECT_NAME"[VARCHAR2,128], "A"."TABLESPACE_NAME"[VARCHAR2,30], "A"."FLAG"[VARCHAR2,2]4 - "ITEM_1"[VARCHAR2,30], "ITEM_2"[VARCHAR2,30]5 - "B"."OWNER"[VARCHAR2,30], "B"."TABLE_NAME"[VARCHAR2,30]6 - (#keys=2) "B"."TABLESPACE_NAME"[VARCHAR2,30], '2'[1]7 - "B"."OWNER"[VARCHAR2,30], "B"."TABLE_NAME"[VARCHAR2,30], "B"."TABLESPACE_NAME"[VARCHAR2,30]-------------------------------------------------------------------------------
ALTERNATIVE PLANS SECTION
-------------------------------------------------------------------------------Plan 1
------Plan Origin                 :Cursor Cache                  Plan Hash Value             :1460256570                    Executions                  :4                             Elapsed Time                :54.846 sec                    CPU Time                    :54.336 sec                    Buffer Gets                 :24506044                      Disk Reads                  :452                           Disk Writes                 :0                             Notes: 1. Statistics shown are averaged over multiple executions.2. The plan with id  could not be reproduced in the current environment. For this reason, a SQL plan baseline cannot be created to instruct the Oracle optimizer to pick this plan in the future.-----------------------------------------------------------------------------------
| Id  | Operation             | Name      | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------------
|   0 | UPDATE STATEMENT      |           |       |       |  7710K(100)|          |
|   1 |  UPDATE               | T_OBJECTS |       |       |            |          |
|   2 |   HASH JOIN RIGHT SEMI|           | 25032 |  1980K|   225   (2)| 00:00:03 |
|   3 |    VIEW               | VW_SQ_1   | 25032 |   831K|   153   (1)| 00:00:02 |
|   4 |     TABLE ACCESS FULL | T_TABLES  | 25032 |   660K|   153   (1)| 00:00:02 |
|   5 |    TABLE ACCESS FULL  | T_OBJECTS | 29227 |  1341K|    71   (2)| 00:00:01 |
|   6 |   HASH UNIQUE         |           |     1 |    34 |   154   (2)| 00:00:02 |
|   7 |    TABLE ACCESS FULL  | T_TABLES  |     1 |    34 |   153   (1)| 00:00:02 |
-----------------------------------------------------------------------------------Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------1 - SEL$A419B6743 - SEL$683B0107 / VW_SQ_1@SEL$1E93CC814 - SEL$683B0107 / B@SEL$25 - SEL$A419B674 / A@UPD$16 - SEL$1       7 - SEL$1        / B@SEL$1-------------------------------------------------------------------------------

6. 参考文档

https://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_sqltun.htm#CHDDCCBJ

Oracle 11g DBMS_SQLTUNE相关推荐

  1. oracle 11g中的自动维护任务管理

    因为人员紧缺,最近又忙着去搞性能优化的事情,有时候真的是不想再搞这个事情,只是没办法,我当前的绩效几乎取决于这个项目的最终成绩,所以不管是人的事还是事的事,都得去让他顺利推进. 前段时间发生还有几台服 ...

  2. listagg 函数--oracle 11g release 2

    http://xpchild.blog.163.com/blog/static/10180985920108485721969/ listagg 函数--oracle 11g release 2 20 ...

  3. Oracle 11g实时SQL监控 --好东西不该藏着

    Oracle 11g实时SQL监控 Oracle, 深入解析Oracle, 读书笔记 四月 9th, 2010 作者:dbtan |[转载时请以超链接形式标明文章出处和作者信息] 链接:http:// ...

  4. oracle 11g完全安装教程(CentOS)

    oracle下载链接:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html oracle ...

  5. Oracle 11g 新特性 -- Transparent Data Encryption (透明数据加密TDE) 增强 说明

    一.TransparentData Encryption (TDE:透明数据加密) 说明 Orace TDE 是Orcle 10R2中的一个新特性,其可以用来加密数据文件里的数据,保护从操作系统层面上 ...

  6. oracle schema与mysql_Oracle数据库之Oracle 11g R2 用户与模式(schema)

    本文主要向大家介绍了Oracle数据库之Oracle 11g R2 用户与模式(schema),通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 创建用户的语法: Create u ...

  7. 菜鸟也来学习ORACLE(1)_linux下安装oracle 11g

    加入 oracle Club 之前,学长给我们开了个小会  说是看看我们加入的意愿,哎哎 其实直无聊,但是大体比较重视linux 服务器的搭建 以及在linux 下安装oracle 搭建一个oracl ...

  8. oracle读书笔记之Oracle 11g R2 DBA操作指南(前三章)

    Oracle 11g R2 DBA操作指南是我学习的第一本讲述oracle数据库知识的书籍,在此记录下自己的学习笔记,对于书中的知识点本人通过实际操作进行验证. 1.Oracle数据库基础 1.1.关 ...

  9. 聊聊Oracle 11g的Snapshot Standby Database(上)

    Oracle 11g是Data Guard的重要里程碑版本.在11g中,Active DataGuard.Advanced Compression等特性大大丰富了Data Guard的功能和在实践领域 ...

最新文章

  1. mysql qadir_MySQL 及 SQL 注入
  2. 360 linux 扩展文件夹,360签具名工Linux下载0907 官方版
  3. php 映射程序,windows磁盘映射技术分享
  4. mysql主从同步原理_mysql主从同步以及原理
  5. 哈佛推出这款PyTorch工具包,10行代码训练“AI药神”模型
  6. [NOIP2014] 寻找道路
  7. 如何保养与维护笔记本硬盘
  8. 审车按月还是日期_大额存单,应该选择按月付息还是到期一次性还本付息?
  9. 目前最完整的前端框架 Vue.js 全面介绍
  10. python注册登录代码_python基础--注册和登录功能 代码
  11. Enterprise Library 2.0 Hands On Lab 翻译(2):数据访问程序块(二)
  12. sap abap开发从入门到精通_给你的ABAP对象打上标签(Tag)
  13. 微信公众号后台接口文档
  14. 电影《功夫熊猫3》中的管理知识
  15. 在日软件工程师的远虑近忧
  16. springboot jar包启动 读取resource下的文件
  17. matlab 功率谱密度 汉宁窗_Matlab实例|频谱、功率谱和功率谱密度计算详解
  18. activiti-邮件任务
  19. 棋类游戏的真正收获 - 延迟满足感
  20. c语言计算级数,C语言之数值计算--级数算法

热门文章

  1. cesium 获取圆形边界位置_WebGL 中的顶点数据压缩
  2. Scom 2007客户端监控
  3. spring源码环境编译问题
  4. UE4智慧城市项目制作规范
  5. 服务频繁出现100毫秒的延迟,原因是什么?
  6. MQTT虚拟服务器 读取繁易云平台数据
  7. 今晚在线解读|2021-2022 .NET 中国开发者生态调查报告
  8. 戴尔服务器内存型号,DELL/戴尔 R720\R910服务器/MD3600F存储/型号描述/DELL产品大全...
  9. STM32cubIDE 黑色主题_主题 | 极简白 移植Q官方简约模式 VX主题
  10. 环境影响评价的概念和指标体系