概述

Oracle数据库排查问题、实验测试、优化的时候一般都会用到trace文件来分析,这里面就涉及到sql_trace跟10046事件了,下面分别做一下介绍。


SQL_TRACE

SQL_TRACE是Oracle提供的用于进行SQL跟踪的手段,是强有力的辅助诊断工具.在日常的数据库问题诊断和解决中,SQL_TRACE是非常常用的方法。不过我们这里主要用于描述SQL的执行过程的trace输出。

– SQL是如何操作数据的。

– SQL执行过程中产生了那些等待时间。

– SQL执行中消耗了多少资源。

– SQL的实际执行计划。

– SQL产生的递归语句。


set auto trace v.s. sql_trace(10046)

1、SET AUTO TRACE (EXPLAIN PLAN)

--输出优化器的产生的执行计划(估算值)

--当需要分析执行计划及CBO行为时,使用SET AUTO TRACE (EXPLAIN PLAN)

2、SQL_TRACE(10046)

– 查看SQL实际的执行情况

• 消耗的资源

• 产生的等待事件

• 数据的处理过程

当要看一条SQL的真实运行效果时,建议用10046事件。


查看SQL_TRACE trace文件

1、查看trace路径

这里也可以用命令来查,不过我习惯用oradebug了,简单很多。

oradebug setmypidoradebug tracefile_name --查看trace文件名及位置

2、原始的trace文件

这里主要说明下trace文件里面的一些参数,要不看不懂trace文件也白搭。

3、tkprof-格式化trace文件的工具

Tkprof是一个用于分析Oracle跟踪文件并且产生一个更加清晰合理的输出结果的可执行工具。如果一个系统的执行效率比较低,一个比较好的方法是通过跟踪用户的会话并且使用Tkprof工具使用排序功能格式化输出,从而找出有问题的SQL语句。

1)格式:

tkprof tracefile outputfile [explain= ] [table= ] [print= ] [insert= ] [sys= ] [sort= ]

2)tkprof参数

3)实际例子

$tkprof /home/oracle/app/oracle/diag/rdbms/nwppdb/nwppdb/trace/nwppdb_ora_21793.trc out.txt aggregate=yes sys=no waits=yes sort=fchela

4)输出文件中列的含义

CALL:每次SQL语句的处理都分成三个部分Parse:这步将SQL语句转换成执行计划,包括检查是否有正确的授权和所需要用到的表、列以及其他引用到的对象是否存在。Execute:这步是真正的由Oracle来执行语句。对于insert、update、delete操作,这步会修改数据,对于select操作,这步就只是确定选择的记录。Fetch:返回查询语句中所获得的记录,这步只有select语句会被执行。COUNT:这个语句被parse、execute、fetch的次数。CPU:这个语句对于所有的parse、execute、fetch所消耗的cpu的时间,以秒为单位。ELAPSED:这个语句所有消耗在parse、execute、fetch的总的时间。DISK:从磁盘上的数据文件中物理读取的块的数量。一般来说更想知道的是正在从缓存中读取的数据而不是从磁盘上读取的数据。QUERY:在一致性读模式下,所有parse、execute、fetch所获得的buffer的数量。一致性模式的buffer是用于给一个长时间运行的事务提供一个一致性读的快照,缓存实际上在头部存储了状态。CURRENT:在current模式下所获得的buffer的数量。一般在current模式下执行insert、update、delete操作都会获取buffer。在current模式下如果在高速缓存区发现有新的缓存足够给当前的事务使用,则这些buffer都会被读入了缓存区中。ROWS: 所有SQL语句返回的记录数目,但是不包括子查询中返回的记录数目。对于select语句,返回记录是在fetch这步,对于insert、update、delete操作,返回记录则是在execute这步。

本来是想将sql_trace和10046事件写成一篇的,写着写着发现一些参数说明就占了很大一部分内容,内容比较多,所以分成两部分介绍好了。

后面会分享下10046事件方面的内容,感兴趣的朋友可以关注下!

.sql文件_优化体系--sql_trace+10046事件(上篇)相关推荐

  1. arcgis select by attributes一次选多个_优化体系--记一次生产数据库sql优化过程--组合索引...

    概述 最近比较有空,所以看了一些问题sql,顺便优化一下,做个简单记录. 问题sql SQL(c212jfrj1m0fg) 在采样期平均单次执行逻辑读为 106205.83, 其最新执行计划涉及 2 ...

  2. 【性能优化】 之10046 事件

    1.演示使用SQL_TRACE和10046事件对其它回话进行跟踪,并给出trace结果.<br> 2.演示10046 level 1,4,8,12的区别.<br> 3.自己构造 ...

  3. mysql日期维表sql文件_《MySQL必知必会》笔记(SQL练习+建表语句)

    站在巨人的肩上 Standing On Shoulders Of Giants 部分转自:https://www.jianshu.com/p/294502893128 https://blog.csd ...

  4. 转储sql文件_在Linux上SQL Server中更改SQL转储文件位置

    转储sql文件 In this article, we will talk about SQL Dump files and the process to change the dump direct ...

  5. mysql 参数sql文件_为MySQL的source命令导入SQL文件配置参数

    为MySQL的source命令导入SQL文件配置参数 执行 mysql -uroot -p 输入密码后进入 MySQL 命令提示符 set charset utf8; source /root/xxx ...

  6. 可视化mysql怎么导入sql文件_使用navicat导入sql文件的方法步骤

    一.打开navicat,打开连接,右击连接名(如果新建连接,需要使用对应数据库的ip地址和密码,本机的是地址localhost,密码是自己mysql数据库的密码),选择新建数据库,数据库名要和想要导入 ...

  7. mysqlworkbench导入sql文件_将sql脚本文件导入数据库

    一.用cmd的调试环境导入.sql文件中的数据: WinR键打开cmd输入: MySQL -u root -p 输入密码:******* 进入MySQL后 MySQL>show database ...

  8. Linux下导出MySQL为SQL文件_在linux命令下导出导入.sql文件的方法

    本文讲述了在linux命令下导出导入.sql文件的方法.分享给大家供大家参考,具体如下: 一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径): 1.导出数据和表结构: ...

  9. python解析sql文件_如何从Python中解析sql文件?

    是否有任何方法可以从Python中执行.SQL文件中的某些SQL命令,而不是文件中的所有SQL命令?假设我有以下.sql文件:DROP TABLE IF EXISTS `tableA`; CREATE ...

  10. 超大Sql文件_超大文件_mysql数据导入到mycat数据库_亲测好用---Linux运维工作笔记053

    对于mycat数据导入,最近一直在研究,因为有个客户的mysql数据库中,单表数据已经30多个GB, 存了上亿条的数据. 查询速度远远跟不上需求了,这个时候,我做了一个mycat集群,用了22台cen ...

最新文章

  1. UI设计工作好找吗?有哪些面试技巧?
  2. 微服务网关从零搭建——(三)Ocelot网关 + identity4
  3. 外链起到引导、推广排名的作用
  4. python中类方法与实例方法的区别-python中类方法、类实例方法、静态方法的使用与区别...
  5. 如何在vue里面正确的引用 jquery 和 第三方插件
  6. Ubuntu SSH root user cannot login
  7. .net 把一个对象赋值给一个参数_Java GC回收算法-判定一个对象是否可以回收
  8. 不是所有人都懂这样做,你若做了就能高升!
  9. 斯坦福大学NLP公开课CS224n上映啦!华人助教陪你追剧
  10. uc点网页显示服务器升级,让uc浏览器网页加载速度提升100%
  11. python建立FTP服务器
  12. queue,stack中的库函数
  13. [nRF51822] 5、 霸屏了——详解nRF51 SDK中的GPIOTE(从GPIO电平变化到产生中断事件的流程详解)...
  14. 拼接播放地址_西安户外did拼接屏批发业务广泛_金伟达电子
  15. 循环减肥c语言,最好的减肥方法
  16. P2P(Peer to Peer)网络的原理
  17. 对话张悦然:当年新概念作文大赛获奖者 现在怎样了
  18. Wheel ProgressBar 实现之三——模拟进度过程
  19. jdk文件夹里点哪个是安装_jdk在哪个文件夹里面
  20. ffmpeg:将webm无损转为mp4

热门文章

  1. [六省联考2017]分手是祝愿
  2. githug-54-git练习
  3. 按照《权威指南》的例子求最低温度并且修改默认调度器为FairScheduler
  4. PMP 与IPMP区别是什么?
  5. ComponentArt Web.UI控件的bug及解决办法
  6. MySQL数据库(四)
  7. 基于天地图标点html教程,天地图WEB API入门指导
  8. K8s CKA认证学习全套笔记
  9. 服务器运维文章大合集
  10. LNMP详解(十)——Nginx负载分担实战