oracle 读懂10046视频,10046、10053、实操记录

10046是一个Oracle的内部事件(event),通过设置这个事件可以得到Oracle内部执行系统解析、调用、等待、绑定变量等详细的trace信息,即帮助我们解析一条/多条SQL、PL/SQL语句的运行状态,这些状态包括:Parse/Fetch/Execute三个阶段中遇到的等待事件、消耗的物理和逻辑读、CPU时间、执行计划等。它不仅为我们揭示了一条、多条SQL的运行情况,同时还能帮我们分析一些DDL维护命令的内部工作原理,RMAN、Data Pump Expdp/impdp等工具缓慢问题。对于SQL性能优化、分析系统的性能有着非常重要的作用。

10053:我们可以通过10046事件看到一个SQL的执行的统计信息,以及执行计划,但是我们只看到了CBO最终告诉我们的执行结果,却并不知道CBO为什么要这么选择,那么就可以通过10053事件来生成SQL分析的整个过程到trace文件中,通俗点讲10053跟踪选路过程,10046产生结果。(10053可参考链接:https://blog.51cto.com/5073392/1308900)

10046最常用的操作步骤(10053步骤类似,把事件改成10053就行,但是10053 TRC不能通过tkprof格式化)

1.开启10046跟踪事件

alter session set events '10046 trace name context forever, level 12';

如果想更容易标识trace文件,在开启事件之前,可以先设置trace的标识

alter session set tracefile_identifier='lych';

2.执行要跟踪的sql语句(对应的trace文件中有SQL的执行情况)

select * from lych;

3.停止10046事件跟踪

alter session set events '10046 trace name context off';

4.定位此次生成的trace文件

select distinct(m.sid),p.pid,p.tracefile from v$mystat m,v$session s,v$process p where m.sid=s.sid and s.paddr=p.addr;

5.用tkprof工具格式化文件输出

tkprof /source.trc /new.trc aggregate=yes sys=yes wait=yes sort=fchela

explain:参数格式为explain=username/password@server_name 或者explain=username/password,这个参数是通过执行explain plan语句来做到的,在trace文件中找到每个sql语句,提供一个执行计划。一般不是必要情况,指定这个参数并不可取,一旦指定了无效的信息,在输出的文件就会出现error。

table:table参数只和explain参数一起使用,用来指定某个表被explain plan语句使用来生成执行计划,通常尽量避免使用table参数,这里就不详细说明不常用的参数了,大家想要了解的话,可以查看oracle的官方联机文档。

print:参数用来限制输出文件生成的sql语句的数量,默认是无限制的。eg:只输出10个sql语句,则参数指定print=10,一般和sort参数一起使用才具有一定的意义。

insert:生成sql脚本,脚本可以用来把数据存储到数据库中。eg:insert=load_data.sql 。

sys:参数执行sys用户下运行的sql语句是否写入到输出文件,默认为yes。可设置为no,避免输出不必要的信息,这个看情况而定吧。

sort:排序的意思,指定输出文件里面的sql语句的顺序,默认是trace源文件里面的sql顺序。你可以指定根据cpu时间,物理读的块数,调用次数等进行排序,eg:sort=elapsed,disk —多个排序用逗号隔开。

aggregate:参数指定是否合并相同的sql,默认为yes,设置为no,输出文件就会列出每个sql的消耗情况等信息。用得比较多的一般是sys和aggregate参数。

实操记录:

昨天生产其中一个PDB出现很奇怪的现象,库中每个表,视图查询都很慢,经过多次查询,发现不管什么SQL执行都超过3秒,利用explain plan for打印执行计划的时候,明显能感觉出来,SQL解析非常慢,第一想法猜测是数据字典出现问题,才没打印其他日志信息的时候 ,在SYS下执行了以下两个包:1 exec dbms_stats.gather_dictionary_stats 2 exec dbms_stats.gather_fixed_objects_stats,之后发现依然还是有问题。之后执行一些经过缓存的SQL发现执行非常快,没有对应的异常现象,这个时候我就已经猜到肯定是解析的时候出现的ORACLE内置递归操作出现了问题,于是根据推测打印了10046 TRC,发现其中一条递归SQL执行了3秒多,相当于这个库任何一条SQL,只要是没缓存的,起步时间都是3秒起步。查阅MOS资料后发现这是12c 12.1.0.2新特性“optimizer_adaptive_features”,默认是打开的,这个特性会在执行sql的时候自动收集统计信息.关闭对应参数后 system set optimizer_adaptive_features=false scope=both sid='*'一切恢复正常; 也可以通过关闭隐含参数实现:

alter system set "_OPTIMIZER_DSDIR_USAGE_CONTROL"=0 SCOPE=BOTH SID='*',当然这是一个BUG,也可以打补丁实现,Oracle Database 12c 版本1的自适应特性的建议 (Adaptive Features, Adaptive Statistics 以及 12c SQL 性能) (文档 ID 2297986.1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux重定向文件被修改后,Linux服务器修改.htaccess文件实现301重定向

出于 SEO、PR 值传递、网址转换的目的,在网站初建和网站迁移时我们都需要使用 301 重定向,通常包括域名对域名,目录对目录和一个独立网址对另一个独立网址的重定向。在虚拟主机上作 301 重定向,最常用的方法有2种:第一…

Druid使用起步—在javaWeb项目中配置监控

原文章:http://my.oschina.net/u/568779/blog/152813 ---------------------------------------------------- druid wiki 当我们在javaWEB项目中使用到druid来作为我们的连接池的时候,一定不会忘了添加监控功能。下面我们就来看一下,在一个…

[译] 想帮助用户做决定?你的APP可以这样设计!

原文地址:Design your app for decision-making原文作者:Jeni译文出自:掘金翻译计划本文永久链接:github.com/xitu/gold-m…译者:PTHFLY校对者:ryouaki想帮助用户做决定?你的APP可以这样设计&am…

ip地址管理系统_门禁监控管理系统项目总结

门禁监控管理系统项目总结1、门禁管理设备(IFACE802) 16台 ,都有独立的网线到控制的房间。IP地址从 192.168.1.101--192.168.1.116。(地下一层 新家的最后一间是在附近的一个房间接的网线。一层的大门 有1台控制器和IFACE802 部署了2根网线)2、门禁控制的IP地址 192.168.1.1173…

linux mount命令衔接,Linux mount命令详解:挂载Linux系统外的文件

Linux mount命令详解:挂载Linux系统外的文件《Linux挂载》一节讲到,所有的硬件设备必须挂载之后才能使用,只不过,有些硬件设备(比如硬盘分区)在每次系统启动时会自动挂载,而有些(比如 U 盘、光盘)则需要手动进行挂载。…

targetFilterLifecycle的作用

targetFilterLifecycle的作用&#xff0c;有需要的朋友可以参考下。 在web.xml中进行配置&#xff0c;对所有的URL请求进行过滤&#xff0c;就像"击鼓传花"一样&#xff0c;链式处理。 配置分为两种A和B。 A:普通配置 在web.xml中增加如下内容&#xff1a;<fi…

平板电脑可以插u盘吗_有手机还需要平板电脑吗 酷比魔方iplay30平板电脑评测

原标题&#xff1a;有手机还需要平板电脑吗 酷比魔方iplay30平板电脑评测一、前言&#xff1a;前段时间我们一帮60岁左右的退休老头、老太太到农家乐去玩&#xff0c;玩累了就开始喝茶&#xff0c;一坐下来&#xff0c;人人都把手机掏出来&#xff0c;看着他们看手机的姿势&…

[8086汇编]利用栈翻转内存数据

assume cs:codesegcodeseg segmentdw 1h, 2h, 3h, 4h, 5h, 6h, 7h, 8h, 9hdw 9 dup(?)start:; 设置栈段mov ax, csmov ss, ax; 36 9 * 2 * 2mov sp, 36sub bx, bxmov cx, 9 s_push:mov ax, cs:[bx]push axadd bx, 2loop s_pushsub bx, bxmov cx, 9 s_pop:pop cs:[bx]add bx, …

面向多媒体 linux 版本,基于MX Linux 的 AV Linux 新版发布,此AV非彼AV

原标题&#xff1a;基于MX Linux 的 AV Linux 新版发布&#xff0c;此AV非彼AV作者&#xff1a;Linux迷链接&#xff1a;https://www.linuxmi.com/av-linux-2020-11-23-mx-linux-19-3.html经过六个多月的开发&#xff0c;面向多媒体的AV Linux发行版已发行了新版本&#xff0c;…

Spring的PropertyPlaceholderConfigurer应用

1. PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现&#xff0c;也就是 BeanFactoryPostProcessor接口的一个实现。PropertyPlaceholderConfigurer可以将上下文&#xff08;配置文 件&#xff09;中的属性值放在另一个单独的标准java Properties文件中去。在XML文件…

safari浏览器_吹爆苹果自带浏览器Safari,没有比它更贴心的浏览器了!!

大家一定觉得苹果的很多自带软件很难用对不对&#xff1f;嘻嘻&#xff0c;我觉得这正是苹果的魅力所在&#xff0c;它的很多产品与我们的正常使用习惯思维之间存在着一堵看不见的墙&#xff0c;只有当你你花点时间去研究、去驾驭它&#xff0c;把那堵墙给它推倒&#xff0c;然…

正则表达式知识详解(转自晴天碧日)

一、什么是正则表达式&#xff1f; 1.定义&#xff1a; 正则表达式(regular expression)描述了一种字符串匹配的模式&#xff0c;可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。构造正则表达式的方法和创建数学表达式的方法…

Spring tx:advice/

<tx:advice/> 有关的设置 这一节里将描述通过 <tx:advice/> 标签来指定不同的事务性设置。默认的 <tx:advice/> 设置如下&#xff1a; 事务传播设置是 REQUIRED 隔离级别是 DEFAULT 事务是 读/写 事务超时默认是依赖于事务系统的&#xff0c;或者事务超…

drcom linux怎么运行,linux下使用drcom登录认证

下载首先感谢开发者:https://github.com/drcoms/drcom-generic这个项目基于python实现了d,p,x版drcom认证,请到上述链接查看相关信息,项目的wiki简单介绍了各版本的使用方法.首先下载上面的drcom-generic,我将其下载到了家目录~/下,完整目录:~/drcom-generic取得必要信息下面启…

升级浏览器_星愿浏览器升级至6.3.2000.2001

玩懂手机网资讯&#xff0c;星愿浏览器升级至6.3.2000.2001&#xff0c;可能很多玩友都不熟悉这款浏览器&#xff0c;星愿浏览器(Twinkstar Browser)是一款使用chromium内核来自一首英文歌曲《 Twinkle, twinkle, little star》&#xff0c;选twinkle的名词twink&#xff0c;组…

js定时刷新时间

<p id"currentTime"> </p><script> document.getElementById("currentTime").innerHTML new Date();//初始化时间 var timing setInterval(function(){changeTime()},1000);//设置定时执行方法和执行频率 function changeTime(){ docu…

mybatis3 添加ehcache支持

为了提高MyBatis的性能,有时候我们需要加入缓存支持,目前用的比较多的缓存莫过于ehcache缓存了,ehcache性能强大,而且位各种应用都提供了解决方案,在此我们主要是做查询缓存,提高查询的效率. 在Mybatis的官网上把集成ehcache的文档下载下来看了看,说的太简单了,对于新手很难理解…

linux下延时1ms用什么函数,Linux下1ms分辨率定时器推荐方式

我需要一个在Linux下具有1ms分辨率的计时器刻度。它用于递增计时器值&#xff0c;该计时器值又用于查看是否应触发各种事件。由于glibc的要求&#xff0c;POSIXtimerfd_create不是一个选项。我尝试使用timer_create和timer_settimer&#xff0c;但从它们获得的最好结果是10ms分…

添加自定义监控项目,配置邮件告警,测试告警,不发邮件的问题处理

2019独角兽企业重金招聘Python工程师标准>>> 添加自定义监控项目 需求&#xff1a;监控某台web的80端口连接数&#xff0c;并出图两步&#xff1a;1&#xff09;zabbix监控中心创建监控项目&#xff1b;2&#xff09;针对该监控项目以图形展现对于第一步&#xff0c…

高通骁龙cpu排行_骁龙系列处理器性能分析,你的手机是什么处理器?

首先来看下目前使用比较多的骁龙处理器排行毫无疑问8系列最新出的骁龙855 Plus性能最强&#xff0c;刚刚发布的vivo NEX 3 5G版搭载的就是这款处理器。那么到底855和855 Plus有什么区别呢&#xff1f;一张图告诉大家从表格可以看出来&#xff0c;骁龙855和骁龙855CPU采用的都是…