IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> oracle获取执行计划的方法 -> 正文阅读

[大数据]oracle获取执行计划的方法

跟这罗老师学

一、获取执行计划的方法
1.DISPLAY_CURSOR方法(真实)
dbms_xplan.display_cursor('sql_id', ? child number, ? format) ?

--child number如果置为NULL,则返回所有子游标的执行计划
--format的格式如下:推荐格式为 'ADVANCED ALLSTATS LAST PEEKED_BINDS'
IOSTATS:显示该游标累计执行的IO统计信息(Buffers, Reads)?
MEMSTATS:累计执行的PGA使用信息(Omem 1Mem Used-Mem)
ALLSTATS:OSTATS + MEMSTATS
Advanced:显示outline、Query Block Name、 Column Projection等信息
Typical:不打印PROJECTION, ALIAS
PEEKED_BINDS:打印解析时使用的绑定变量
LAST:仅显示最后一次执行的统计信息

建议步骤:
(1)
alter session set STATISTICS_LEVEL = ALL; ?--会话级别 ? ? (调试的时候可以设置会话级别的)
(2)相同会话执行业务查询语句,并获取sql_id
(3)获取执行计划
select * from table(dbms_xplan.display_cursor('sql_id ',null,'advanced allstats last peeked_binds'));

说明:
当statistics_level设置为typical时也是默认值时,oracle会自动收集用于自我管理和提供最佳性能的重要统计数据。这个值适用于大部分环境。
当statistcs_lever设置为 all时,oracle不但会收集typical的数据,并且在其基础上加上 操作系统定时统计数据,和执行计划。 所以对于问题的诊断,建议在会话级别设置为all
当statistics_lever设置为basic时,oracle不会收集很多重要特性数据,对于性能优化等诊断将会产生重大影响?


优点:能显示谓词信息,可以输出更为详细的信息
缺点:具有时效性,仅支持在v$sqlarea中还存在的sql_id


2.DISPLAY_AWR (真实)
select * from table(dbms_xplan.display_awr('sql_id', format=>'all'));
更全的信息:
select * from table(dbms_xplan.display_awr('sql_id',null,null, 'advanced allstats last peeked_binds') ?)

优点:在快照期内可用,比DISPLAY_CURSOR方法时间长
缺点:不能显示谓词信息


3.SQL TRACE (真实)?
当前session :
SQL> alter session set tracefile_identifier='my20210426';
SQL> alter session set sql_trace=true;
SQL> 执行sql
SQL> alter session set sql_trace=false;
会在trace目录下(警告日志所在目录)生成跟my20210426相关的trace文件

4.10046事件(真实)
当前session:
SQL> alter session set tracefile_identifier='my10046';
SQL> alter session set events '10046 trace name context forever, level 12';
SQL> 执行sql
SQL> alter session set events '10046 trace name context off';
会在trace目录下(警告日志所在目录)生成跟my10046相关的trace文件


?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 18:43:14  更:2022-04-22 18:45:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:05:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码