iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >DBM_SQLTUNE使用简介
  • 816
分享到

DBM_SQLTUNE使用简介

2024-04-02 19:04:59 816人浏览 安东尼
摘要

DBMS_SQLTUNE的使用方法所需权限grant advisor to user;grant select_catalog_role to user;  --通过OEM管理必不可少g

DBMS_SQLTUNE的使用方法


所需权限

grant advisor to user;

grant select_catalog_role to user;  --通过OEM管理必不可少

grant execute on dbms_sqltune to user;

 

获取绑定变量的方法

    此时分两种情况,一种是在v$sql中存在的SQL,一种是在v$sql中不存在的SQL

转化v$sql中对应的绑定变量值

   跟据SQL_ID取v$sql中bind_data的值

select position, value_string

 from table(dbms_sqltune.extract_binds('beda0a200500521ffd700'));

如果v$sql中不存在,可以用此方法获取绑定变量值

select dbms_sqltune.extract_bind(bind_data,1).value_string || '-' ||

      dbms_sqltune.extract_bind(bind_data, 2).value_string || '-' ||

      dbms_sqltune.extract_bind(bind_data, 3).value_string || '-' ||

      dbms_sqltune.extract_bind(bind_data, 4).value_string || '-' ||

      dbms_sqltune.extract_bind(bind_data, 5).value_string || '-' ||

      dbms_sqltune.extract_bind(bind_data, 6).value_string

from sys.wrh$_sqlstat

 where sql_id = '1nnrufx6sw8sd'

 

1、创建调优任务

1.1 通过sql_text创建(绑定变量SQL)

DECLARE

 my_task_name VARCHAR2(30);

 my_sqltext  CLOB;

BEGIN

 my_sqltext := 'select * from emp where ename=:name and DEPTNO= :deptno';

 my_task_name :=DBMS_SQLTUNE.CREATE_TUNING_TASK(

        sql_text    => my_sqltext,

bind_list  => sql_binds(anydata.convertvarchar2(10),anydata.convertnumber(2)),

        user_name   => 'TEST',

        scope       => 'COMPREHENSIVE',

        time_limit  => 60,

        task_name   =>'test_sql_tuning',

        description => 'Task to tune a query on emp');

END;

/

1.2 无绑定变量SQL的优化

declare

 my_task_name VARCHAR2(30);

 my_sqltext   CLOB;

BEGIN

 my_sqltext   := 'select * fromorabpel.cube_scope';

 my_task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK(sql_text    => my_sqltext,

                                                 user_name   => 'orabpel',

                  scope => 'COMPREHENSIVE',

                  time_limit => 60,  --优化限时60s

                  task_name   => 'wxw_sql_tuning_task',

                  description => 'tune thebad sql');

 dbms_sqltune.Execute_tuning_task(task_name =>'TEST_sql_tuning_task');

END;

1.3 通过SQL_ID进行优化

    这种情况通常常用于v$sql中的异常SQL优化

DECLARE 

    my_task_name VARCHAR2(40); 

BEGIN 

    my_task_name :=  DBMS_SQLTUNE.create_tuning_task(

        sql_id         => '1hudpukz651tt',

        plan_hash_value    => NULL,

        scope           =>  dbms_sqltune.SCOPE_COMPREHENSIVE,

        time_limit   =>  dbms_sqltune.TIME_LIMIT_DEFAULT,

        task_name    => 'test_sql_tuning_1hudpukz651tt',

        description   => '1hudpukz651tt'); 

    DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name => 'test_sql_tuning_1hudpukz651tt');

    dbms_output.put_line(my_task_name); 

END; 



1.4 通过指定AWR中的Snap_id进行优化

declare

    my_task_name varchar2(30);

begin

    my_task_name := dbms_sqltune.create_tuning_task(

         begin_snap      => 24365,

         end_snap        => 24366,

         sql_id          =>'d40kghyfbg8sj',

         plan_hash_value => null,

         scope           =>'comprehensive',

         time_limit      => 60,

         task_name       =>'wxw_sql_tuning_task',

         description     => 'tune thebad sql'

    );

    dbms_sqltune.execute_tuning_task (task_name =>'wxw_sql_tuning_task');

 end;

 

2、执行调优任务

---execute

execdbms_sqltune.execute_tuning_task('TEST_tuning_task');

3、查看执行情况

---checek

SELECT status FROM USER_ADVISOR_TASKS WHERElower(task_name) ='test_tuning_task';

select * from user_advisor_tasks;

---report

SET LONG 999999

set serveroutput on size 999999

SET LINESIZE 1000

SELECTDBMS_SQLTUNE.REPORT_TUNING_TASK('TEST_tuning_task') FROM DUAL;

4、删除调优任务

---drop

execdbms_sqltune.drop_tuning_task('TEST_tuning_task');


您可能感兴趣的文档:

--结束END--

本文标题: DBM_SQLTUNE使用简介

本文链接: https://www.lsjlt.com/news/38388.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Postman使用简介
    文章目录 Postman简介Postman主界面菜单栏工具栏请求管理区环境管理区请求设计区 发送请求发送GET请求Postman发送GET请求发送表单格式POST请求发送JSON格式PO...
    99+
    2023-09-02
    Java Postman
  • pipenv 使用简介
    之前在开发时一直使用 conda 使用作为虚拟环境管理工具,但有时候会经常会临时性的需要一个虚拟环境,如果使用 conda create 创建一个新环境,耗时不说,有时候还忘了删除,最后系统里一堆的虚拟环境。偶然发现 pipenv 后试用...
    99+
    2023-01-31
    简介 pipenv
  • Pytest 使用简介
    前言   最近在听极客时间的课程,里面的讲师极力推崇 pytest 框架,鄙视 unittest 框架,哈哈!然后查了些资料,发现了一条 python 鄙视链:pytest 鄙视 &...
    99+
    2024-04-02
  • Android OKHttp使用简介
    目录配置 创建OkHttpClient 同步get请求异步get请求 同步post请求异步post请求上传文件表单提交下面是官网给出的OKHTTP的特点: 支持HTTP/2...
    99+
    2024-04-02
  • SpiderMonkey 简介和使用
    SpiderMonkey 是 Mozilla 基金会开发的一款开源的 JavaScript 引擎。它是 Firefox 浏览器的内置...
    99+
    2023-09-14
    SpiderMonkey
  • Python中itertools简介使用介绍
    目录Python中itertools模块一、 简介二、 使用介绍1、 常用迭代器1.1 chain1.2 groupby2、 无穷迭代器2.1 count2.2 cycle2.3 r...
    99+
    2022-12-28
    Python中itertools Python itertools详解 Python itertools
  • SpringCloud Zuul的使用简介
    目录简介 使用 简介 Zuul是Spring Cloud全家桶中的微服务API网关。 所有从设备或网站来的请求都会经过Zuul到达后端的Netflix应用程序 Z...
    99+
    2024-04-02
  • SpringCloud Feign的使用简介
    目录简介使用总结简介 feign是声明式的web service客户端,它让微服务之间的调用变得更简单了,类似controller调用service。Spring Cloud集成了...
    99+
    2024-04-02
  • Onnx简介以及使用
    目录 一、ONNX简介 二、使用场景 三、常见例子  四、使用步骤 1.引入库 2.读入数据 五、如何查看onnx网络结构和参数 六、一个简单例子的实现 七、ONNX 的其他基本操作 1.获取onnx模型的输出层...
    99+
    2023-09-01
    python 开发语言
  • Guava Cache的使用简介
    目录1 引入 2 Guava Cache介绍 3 缓存的过期时间设置 4 缓存加载机制 5 缓存清理 1 引入 说到缓存,可能大家最先想到的还是Redis。作为基于键值对的非关系型...
    99+
    2024-04-02
  • Vue3 Composition API的使用简介
    目录概述 示例为什么需要 setup ref、reactive computed与watch生命周期 vue3.0在7月发布了rc版本,vue-cli4.5后也支持选择vue3作为备...
    99+
    2024-04-02
  • C# 枚举的使用简介
    目录为什么使用枚举?枚举有哪些用法?1、简单枚举2、标志枚举3、枚举使用的一些建议枚举这个名词大家都听过,很多小伙伴也使用过, 那么枚举在开发中能做什么,使用它后能给程序代码带来什么...
    99+
    2024-04-02
  • python使用sqlite简单介绍
    python连接sqlite非常简单,基本步骤如下: 用sqlite3.connect创建数据库连接,假设连接对象为conn 如果该数据库操作不需要返回结果,就直接用conn.execute查询,如建表、删表、添加、修改删除数据...
    99+
    2023-01-31
    简单 python sqlite
  • python Polars库的使用简介
    目录文件地址:大家好,我是小F~ 很多人在学习数据分析的时候,肯定都会用到Pandas这个库,非常的实用! 从创建数据到读取各种格式的文件(text、csv、json),或者对数据进...
    99+
    2024-04-02
  • Python3+cgroupspy安装使用简介
    目录一、系统资源使用限制的必要性探讨二、cgroups简介2.1背影简介2.2使用简介2.3配置实现示例2.4关于配置的一些说明三、cgroupspy安装使用3.1安装3.2使用示例...
    99+
    2023-05-18
    Python3 cgroupspy安装 Python3安装教程 Python3安装使用
  • vue3常用的API使用简介
    目录生命周期的变更reactiveref我们在vue2.x中获取元素标签是用 ref ,vue3.x我们要获取元素标签怎么办呢?toReftoRefsshallowReactives...
    99+
    2024-04-02
  • Dockerfile常用命令的使用简介
    目录01 CMD02 ENTRYPOINT03 WORKDIR04 ENV05 USER06 VOLUME07 ADD08 COPY   之前的文章中,...
    99+
    2024-04-02
  • python glom模块的使用简介
    目录安装简单使用复杂用法搞定麻烦需求总结工欲善其事,必先利其器!我们想要更轻松更有效率地开发,必须学会一些“高级”技能。前不久看到一位 Python 高僧的代码,其中使用了一个短小精...
    99+
    2024-04-02
  • MongoDB mongoexport工具的使用简介
    目录01  基本介绍02  常用参数03  命令04  经验值05  反向导入01  基本介绍   ...
    99+
    2024-04-02
  • SpringCache的简介和使用教程
    目录1、简介2、整合SpringCache简化缓存开发3、SpringCache的原理和不足1、简介 Spring 从 3.1 开始定义了 org.springframework.c...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作