目录:

10046的 定义

10046生成语句方法:

10046级别

tkprof常用参数

与10046相关的两个参数:

10046怎么看?

分析下面一段代码:

SQL trace 的使用方法:

10046的 定义

sql_trace/10046事件是oracle提供的用于进行sql跟踪的手段,其内容包括sql的解析过程、sql的执行计划、绑定变量的使用、会话发生的等待事件。

10046生成语句方法:

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

现在随便查询一个什么,如:

select * from dba_users where rownum<20

查看trace文件

SQL> select * from v$diag_info;

里面有个Default Trace File

1 Default Trace File

/u01/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ora_28613.trc

10g的话,show parameter dump;找udump

10046级别

目的:获取sql、pl_sql等相关语句的执行情况解析

10046级别:共4个级别 分别为0、1、4、8、12

10046事件是SQL_TRACE的扩展,被戏称为"吃了兴奋剂的SQL_TRACE"

有效的追踪级别:

① 0级:SQL_TRACE=FASLE

② 1级:SQL_TRACE=TRUE,这是缺省级别

③ 4级:1级+绑定变量

④ 8级:4级+等待事件

⑤ 12级:4级+8级

tkprof:oracle内置的针对跟踪文件格式化的一种工具

alter session set events '10046 trace name context forever, level 12';  --当前会话启用跟踪

alter session set events '10046 trace name context off';  --关闭当前会话跟踪

select sid,serial#,username from v$session where username is not null;   --查询sid和serial

execute dbms_system.set_ev(sid,serial#,10046,12,'');  --在当前会话对其它会话进行跟踪

execute dbms_system.set_ev(sid,serial#,10046,0,'');  --在当前会话关闭其它会话跟踪

tkprof常用参数

tkprof   回车查看一下帮助  就知道怎么用了  tkprof 解析源追踪文件  解析完成的文件

filename 由SQL trace产生的输入跟踪文件

explain SQL语句的explain plain

recoed 创建非递归SQL语句的SQL脚本

waits 记录等待事件的汇总

SORT 根据一个或多个项目提供分类数据,如PRSCPU(CPU时间分析)、PRSELA(已用时间分析)等

table 定义表的名称,TKPROF实用程序暂时将执行计划放入该表中

sys 启用或禁用由sys给出的一组SQL语句

PRINT 仅列出指定数量的SQL语句,而不是所有的SQL语句

insert 创建存储跟踪数据库信息的脚本

与10046相关的两个参数:

show parameter max_dump_file_size;

对trace文件的大小限制

show parameter timed_statistics;

对重要信息的收集是否开启

10046怎么看?

tkprof文件都包含以下内容:

  1. sql语句
  2. 分析 执行 获取调用的次数
  3. 被处理的行数
  4. 所使用CPU的秒数
  5. 所使用的IO
  6. 库高速缓存未命中
  7. 可选的执行计划
  8. 行源 操作列表
  9. 一个报告,总结分析了在跟踪文件中有多少相似和完全不同的语句,如果同样的语句,parse列总是一个大值,说明没有用上绑定变量

count    = number of times OCI procedure was executed。OCI为oracle的调用接口,提供了一组可对ORACLE数据库进行存取的接口子例程(函数),通过在第三代程序设计语言(如C语言)中进行调用可达到存取ORACLE数据库的目的。

cpu      = cpu time in seconds executing  以秒为单位的

elapsed  = elapsed time in seconds executing 以秒为单位的消耗时间

disk     = number of physical reads of buffers from disk 物理读

query    = number of buffers gotten for consistent read 为了一致性读获得的空间。

在一致性读模式下,所有parse、execute、fetch所获得的buffer的数量。一致性模式的buffer是用于给一个长时间运行的事务提供一个一致性读的快照,缓存实际上在头部存储了状态。

current  = number of buffers gotten in current mode (usually for update) 数据库块命中的次数,通常是为了update

在current模式下所获得的buffer的数量。一般在current模式下执行insert、update、delete操作都会获取buffer。

rows     = number of rows processed by the fetch or execute call 每一种调用类型所处理的行的总数

还有这些:

Misses in library cache during parse:发生在解析的硬解析数量,如果是软解析则Misses in library cache during parse将为0

Misses in library cache during execute:发生在执行调用阶段的硬解析数量。如果在执行调用时没有硬解析发生,Misses in library cache during execute这一行将不存在。

重点参考:http://czmmiao.iteye.com/blog/1493765

分析下面一段代码:

SQL ID: 00fqk94bdzqnj Plan Hash: 644658511

select sid,serial#,username

from

v$session where username is not null

call     count①       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        1      0.01       0.01          0          0          0           0

Execute      1      0.00       0.00          0          0          0           0

Fetch        2      0.00       0.00          0          0          0           2

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        4      0.01       0.01          0②          0          0           2

Misses in library cache during parse: 1

Optimizer mode: ALL_ROWS

Parsing user id: SYS

Number of plan statistics captured: 1

①假设count这列,fetch部分执行了17324次,获得的rows行数是259806,两者相除,就可以得出一次获取,能够获取多少行记录,一次获得15行数据,怀疑是用了数组取操作。

②理论上,elapsed time=CPU time+disk time,即如果elapsed time为1.85,CPU为1.82,那么disk可能就是3。但是也可能是有等待事件,把大量时间花在了等待事件上。

③可以通过磁盘IO所占逻辑IO的比例,disk/query+current来判断磁盘IO的情况,太大的话有可能是db_buffer_size过小,当然这也跟SQL的具体特性有关

④query+current/rows 平均每行所需的block数,太大的话(超过20)SQL语句效率太低,数据过于分散,可以考虑重组对象

⑤通过SQL ID: 06nvwn223659v Plan Hash: 0 标识出一个新的SQL分析,会发现很多是系统自己的SQL,直接不用看

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28853590/viewspace-2151123/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28853590/viewspace-2151123/

10046的使用和看法相关推荐

  1. wowpve服务器优势,PVE服务器法师对本职业的一点看法

    看过了各位高手的对法师的一些看法,其中被喷的也不在少数,其实大家公认的在魔兽世界里没有最强的职业,只有更强的玩家,所有流派的诞生都是各位玩家在不断的探索中发现的,我是一个休闲法师玩家在这里只谈谈自己的 ...

  2. 【译】Monolith first —— Martin Fowler 对于微服务架构的看法

    转载文章,文章经 LiteCodes 授权,转载至本博客. 原文地址:[译]Monolith first -- Martin Fowler 对于微服务架构的看法 整体架构先行(Monolith fir ...

  3. 区块链技术如何改变我们对DNA的看法

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 试想一下,有人得到了你的一些最私人的信息,并用它来攻击你,窃取你的身份,实施诈骗.这对于你来说特别有压力,对吧?那么,倘 ...

  4. 维护学习的一点体会与看法

    学习维护的知识也有2个月了,对于知识的学习也有一定的看法.接下来我就说一下我对学习的看法. 首先,你要学会自学,无论是看书还是上网查资料,维护的知识很多很杂,想要人一下子来教是不可能.只能是自己慢慢的 ...

  5. 包云岗:关于RISC-V成为印度国家指令集的一些看法

    作者 | 包云岗 本文于2017年11月28日完稿,将在<中国计算机学会通讯>2018年第1期发表. 处理器指令集是软硬件的接口,是核心基础软硬件生态系统的基石,其重要性不言而喻.2011 ...

  6. 漫画 | 你对加班有什么看法?

    点击关注公众号,Java干货及时送达 今天这篇漫画讲述的是王大拿初入职场,面试中被问对于加班的态度和看法,而引发的一系列故事- 本期漫画情节纯属虚构 如有雷同,纯属巧合. 编后 社会 or 职场是一个 ...

  7. 关于swing的一些看法

    这半年在研究im,xmpp相关方面的东西,其中涉及到客户端(如spark)的一些开发问题,在技术群里,经常有人问swing的问题,看到就做了一些回答,由此想起了swing以前的一些开发经验,对其优劣做 ...

  8. 我对计算机的看法英语作文,我对网络的看法英语作文

    我对网络的看法英语作文 Internet may have been one of the most influential but disputable existences in the worl ...

  9. 各大厂这个档次分配,大佬们有什么看法?

    之前在论坛上看到一个各大厂这个档次分配,大佬们有什么看法?接受各种吐槽? 有网友说Amazon,IBM这算哪门子s级?linkedin不是个招聘网站吗,怎么排名这么靠前了? 就有人问了,这个排名的依据 ...

最新文章

  1. 饿了么交易系统5年演化史
  2. mysqldiff对比主从表结构是否一致
  3. 数据拟合matlab算法
  4. [Java学习]Striing StringBuffer StringBuilder 的比
  5. 雅虎的Web优化最佳实践
  6. 某大学多站联动获取webshell
  7. BATJ面试必会|Jvm 虚拟机篇
  8. struts中文问题,struts国际化问题的终极解决方案
  9. redis 高级实用教程
  10. PHP 利用cron 实现文章同步至新浪、网易等微博
  11. oracle 数据补齐月份,Oracle自定义函数--增加月份
  12. jquery基础复习-index(),
  13. jdk1.8下载与安装教程
  14. 校园卡管理系统c语言代码,基于C++的校园一卡通管理系统
  15. 5G关键技术简介带你揭开5G神秘面纱
  16. 智能硬件市场与产品概况整理
  17. 傻子的代码怎么写_傻瓜不写单元测试
  18. uva 10246 Asterix and Obelix(最短路问题拓展 dijkstra)
  19. 解决“npm WARN requires a peer of XXX“问题
  20. SD卡、记忆棒等内存卡的数据恢复方法

热门文章

  1. 西门子热水器替换疑问配件后持续卖 公司称安全
  2. 用HTML+CSS+JS写的切水果小游戏它来了
  3. day07-商品分类及品牌(跨域问题)
  4. 【ORB_SLAM2源码解读】TUM RGBD 数据集跑通ORB_SLAM2
  5. sqlmap蜜罐原理与实现
  6. 继承体系和super关键字
  7. 可以跟着你浪迹天涯的咖啡机,比星巴克还方便的“续命良药” | 钛空舱
  8. Scrapy爬取顶点小说
  9. pgAdmin报Connection refused (0x0000274D/10061)错误
  10. 数据安全--8--数据安全中的部分技术最佳实践