iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >10046事件概述
  • 703
分享到

10046事件概述

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

oracle的10046事件,可以跟踪应用程序所执行的sql语句,并且得到其解析次数.执行次数,CPU使用时间等信息。这对我们分析、定位数据库性能问题是非常有用的。 1


  • oracle的10046事件,可以跟踪应用程序所执行的sql语句,并且得到其解析次数.执行次数,CPU使用时间等信息。这对我们分析、定位数据库性能问题是非常有用的。
  • 10046 event是oracle用于系统性能分析时的一个最重要的事件。当激活这个事件后,将通知oracle kernel追踪会话的相关即时信息,并写入到相应trace文件中。这些有用的信息主要包括sql是如何进行解析,绑定变量的使用情况,会话中发生的等待事件等
  • 10046 event 可分成不同的级别(level),分别追踪记录不同程度的有用信息。对于这些不同的级别,应当注意的是向下兼容的,即高一级的trace信息包含低于此级的所有信息。
  • 10046event的追踪级别大致有:
  • level 1:跟踪sql语句,包括解析、执行、提取、提交和回滚等。
  • level 4:包括变量的详细信息
  • level 8:包括等待事件
  • level 12:包括绑定变量与等待事件
  • 其中,level 1相当于打开了sql_trace
  • 前提条件:
  • (先确保要event的会话环境符合条件)
  • 1、必须确保timed_statistics为TRUE,这个参数可以在会话级上进行修改。关于参数timed_statistics的一段解释
  • Without timed statistics, Oracle records the reason for each wait before it begins to wait, and when the wait is over, it records whether it timed out. But with timed statistics enabled, Oracle checks the time just before and after each wait, and also records the time waited. The time waited is recorded in hundredths of a second— that is, centiseconds.
  • true
  • The statistics are collected and stored in trace files or displayed in the V$SESSTATS and V$SYSSTATS dynamic perfORMance views.
  • false
  • The value of all time-related statistics is set to zero. This setting lets Oracle avoid the overhead of requesting the time from the operating system.
  • Starting with release 11.1.0.7.0, the value of the TIMED_STATISTICS parameter cannot be set to false if the value of STATISTICS_LEVEL is set to TYPICAL or ALL.
  • 本人的理解是:参数timed_statistics设置为true的话.Oracle记录等待事件的wait reason和等待事件开始和结束的时间点,以及该等待是否超时。timed_statistics=false后,Oracle只记录了等待事件和等待事件是否超时的信息。
  • 在timed_statistics  = false时,我们只能够知道这些等待时间的次数(records the reason for each wait ), 以及等待时间timed out的次数(records whether it timed out)
  • 在timed_statistics = true时,我们可以知道系统在某个具体的等待事件上等待的时间(records the time waited),这样我们就可以判断具体是什么原因导致我们的系统变慢或者跟踪数据库进行的操作,有了这些时间信息可以确定等待事件在哪个时间段出现比较频繁。时间的统计信息会被更新到V$SESSTATS和V$SYSSTATS视图中。11.1.0.7以后如果STATISTICS_LEVEL被设置为typical或者all,则不能将timed_statistics设置为false
  • 2、为了确保trace输出能够完整进行,还要调整此会话对trace文件大小的限制,一般将此限制取消,即将max_dump_file_size设置为UNLIMITED,或者设置为一个很大的阙值。
  • 在满足了上述条件后,就可以启用10046 event对会话进行后台跟踪了。
  • 使用10046事件
  • 1、首先获得spid、sid、serial#,Machine为连接oracle的机器名
  • select b.spid,a.sid,a.serial#,a.machine from v$session a,v$process b where a.paddr =b.addr  and a.sid = '159'
  • 继续往下看,就可以知道为什么找到SPID了;
  • 2、trace的开启和关闭
  • 使用sql_trace
  • SQL> alter system set sql_trace=true;   --开启系统级别的sql_trace
  • SQL> alter session set sql_trace=true;   --开启会话级别的sql_trace
  • SQL> execute dbms_system.set_sql_trace_in_session(267,996,true); 
  • PL/SQL 过程已成功完成。         -- 启动其他会话的SQL_TRACE
  • SQL> alter system set sql_trace=false;  --关闭系统级别的sql_trace
  • SQL> alter session set sql_trace=false;  --关闭会话级别的sql_trace
  • SQL> execute dbms_system.set_sql_trace_in_session(267,996,false);
  • PL/SQL 过程已成功完成。      -- 关闭其他会话的SQL_TRACE
  • 使用10046 事件跟踪
  • SQL> alter session set events '10046 trace name context forever ,level 12' ;    会话已更改。 --开启本会话的10046事件
  • SQL> exec dbms_monitor.session_trace_enable(267,996,waits=>true,binds=>true);      
  • PL/SQL 过程已成功完成。       -- 开启其他会话的10046事件
  • SQL> alter session set events '10046 trace name context off' ;
  • 会话已更改。 --关闭本会话的10046事件
  • SQL> exec dbms_monitor.session_trace_disable(267,996);
  • PL/SQL 过程已成功完成。            -- 关闭其他会话的10046事件
  • 参数说明:
  • 15:SID
  • 196:SERIAL#
  • 注意这里必须以sysdba登录。
  • 3、获得产生的跟踪文件所在的目录
  • SQL> select value from v$parameter where name = 'user_dump_dest';
  • 转到该目录下可以看到生成了一个zftang_ora_596.trc文件,此处的596即SPID的值。
  • 4、使用tkprof命令,转换TRC文件
  • 在命令行下执行oracle的tkprof命令,将zftang_ora_596.trc转化为文本文件
  • 如:
  • $ tkprof  ora9i_ora_24722.trc ora9i_ora_24722.sql
  • 此时在zftang_ora_596.sql文件中,就可以看到刚才执行应用程序时所执行的sql语句的执行次数、CPU使用时间等数据。
  • TRACE将消耗相当的系统资源,因此我们在使用TRACE的时候应当慎重。对于正式的系统,应当只在必要的时候进行TRACE操作,并且应当及时关闭。
  • ********************************************************************************
  • count    = number of times OCI procedure was executed
  • 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
  • current  = number of buffers gotten in current mode (usually for update)
  • rows     = number of rows processed by the fetch or execute call
  • ********************************************************************************
  • update test_01 set flag1 = '测试'
  • call     count       cpu    elapsed       disk      query    current        rows
  • ------- ------  -------- ---------- ---------- ---------- ----------  ----------
  • Parse        1      0.00       0.01          0          2          0           0
  • Execute      1      2.35       2.64        358       1865     220043       50782
  • Fetch        0      0.00       0.00          0          0          0           0
  • ------- ------  -------- ---------- ---------- ---------- ----------  ----------
  • total        2      2.35       2.65        358       1867     220043       50782
  • Misses in library cache during parse: 1
  • Optimizer mode: ALL_ROWS
  • Parsing user id: 63       
  • 如何使用tkprof
  • Http://czmmiao.iteye.com/blog/1493765
  • 查看原始trace文件
  • http://czmmiao.iteye.com/blog/1493933
  • 关于alter system event
  • http://czmmiao.iteye.com/blog/1330430 
  • 注意:如果一条SQL语句中包含了通过DBLINK进行的数据操作,我们想对这条SQL进行trace跟踪,在本地只能够trace到本地执行的SQL信息,而对于远程的SQL语句,由于它运行在远端的数据库上,我们要获得它的信息,需要到远端的数据库上,找到运行这条SQL语句的session,然后对它做Trace。 另外,这条SQL语句的执行计划也只能从远端数据库上捕获到。
  • 您可能感兴趣的文档:

    --结束END--

    本文标题: 10046事件概述

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

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

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

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

    下载Word文档
    猜你喜欢
    • 10046事件概述
      Oracle的10046事件,可以跟踪应用程序所执行的SQL语句,并且得到其解析次数.执行次数,CPU使用时间等信息。这对我们分析、定位数据库性能问题是非常有用的。 1...
      99+
      2024-04-02
    • sql_trace和10046事件解析
      sql_trace和10046事件解析.docx Oracle SQL Trace 和 10046 事件 http://blog.csdn.net/tianlesoftware/article/detai...
      99+
      2024-04-02
    • Oracle 10046事件 介绍(一)
      做Oracle方面的工作时间长了,经常会听人提起10046事件,尤其是涉及到SQL调优的时候更甚。那10046事件到底是什么呢,先做一个简单的介绍。1、什么是10046事件  10046事件是Or...
      99+
      2024-04-02
    • oracle中10046事件怎么用
      这篇文章主要介绍oracle中10046事件怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 10046的 定义      ...
      99+
      2024-04-02
    • oracle 10046事件故障诊断分析
      本篇文章为大家展示了oracle 10046事件故障诊断分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 什么是事件?EVENTS ...
      99+
      2024-04-02
    • Oracle 11g 查看执行计划10046事件
      使用10046事件查看真实的执行计划操作如下:SQL> conn / as sysdbaConnected.SQL> SQL> oradebug setmypid Stateme...
      99+
      2024-04-02
    • React组件的用法概述
      目录组件的定义:React组件函数式组件类式组件组件实例三大属性statepropsrefs与事件处理组件的定义: 理解:用来实现局部功能效果的代码和资源的集合(html/css/j...
      99+
      2023-02-17
      React组件的用法 React组件
    • IGMPv3概述
      源特定组播除了要求网络端到端地支持网络组播和SSM 模式外,同时还要求网络和应用支持IGMP V3 协议栈。 IGMP V3 在IGMP V1/V2 的基础上提供了额外的源过滤组播功能(SFM:Source-Filtered Multica...
      99+
      2023-01-31
    • CXL 概述
      CXL 概述 前言1. 什么是CXL1.1 背景1.1.1 PCIE 的现状1.1.2 技术背景 1.2 特点1.3 是什么 2. Flex Bus2.1 特性2.2 Flex Bu...
      99+
      2023-09-01
      CXL PCIe 服务器 内存 计算
    • Java基础之文件概述
      目录一、基本概念和常识1.1 二进制思维1.2 文件类型1.3 文本文件的编码1.4 文件系统1.5 文件读写二、Java文件概述2.1 流2.2 装饰器设计模式 2.3 ...
      99+
      2024-04-02
    • H3C PKI 概述
      PKI 简介    PKI( Public Key Infrastructure,公钥基础设施)是一个利用公开密钥理论和技术来实现并提供信息安全服务的具有通用性的安全基础设施。    公共密钥体制也称为非对称密钥体制,是目前应用最广泛的一种...
      99+
      2023-01-31
      H3C PKI
    • H3C IPsec概述
      IPsec 简介    IPsec( IP Security)是 IETF 制定的三层隧道加密协议,它为 Internet 上数据的传输提供了高质量的、 可互操作的、 基于密码学的安全保证。 特定的通信方之间在 IP 层通过加密与数据源认证...
      99+
      2023-01-31
      H3C IPsec
    • H3C ARP概述
      ARP 简介ARP 作用    ARP( Address Resolution Protocol,地址解析协议)是将 IP 地址解析为以太网 MAC 地址(或称物理地址)的协议。    在局域网中,当主机或其它网络设备有数据要发送给另一个主...
      99+
      2023-01-31
      H3C ARP
    • H3C Portal概述
      Portal简介    Portal 在英语中是入口的意思。 Portal 认证通常也称为 Web 认证,一般将 Portal 认证网站称为门户网站。    未认证用户上网时,设备强制用户登录到特定站点,用户可以免费访问其中的服务。当用户需...
      99+
      2023-01-31
      H3C Portal
    • H3C Qos概述
          QoS( Quality of Service,服务质量)用于评估服务方满足客户服务需求的能力。在 Internet 中,QoS 所评估的就是网络转发分组的服务能力。由于网络提供的服务是多样的,因此对 QoS 的评估可以基于不同方面...
      99+
      2023-01-31
      H3C Qos
    • H3C ACL概述
      概述    随着网络规模的扩大和流量的增加,对网络安全的控制和对带宽的分配成为网络管理的重要内容。通过对报文进行过滤,可以有效防止非法用户对网络的访问,同时也可以控制流量,节约网络资源。ACL( Access Control List,访问...
      99+
      2023-01-31
      H3C ACL
    • H3C GRE概述
      协议简介    GRE( Generic Routing Encapsulation,通用路由封装)协议是对某些网络层协议(如 IP 和 IPX)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如 IP)中传输。 GRE是...
      99+
      2023-01-31
      H3C GRE
    • H3C RADIUS概述
          RADIUS( Remote Authentication Dial-In User Service,远程认证拨号用户服务)是一种用于实现AAA( Authentication, Authorization and Accounti...
      99+
      2023-01-31
      H3C RADIUS
    • H3C MSTP概述
          生成树协议是一种二层管理协议,它通过选择性地阻塞网络中的冗余链路来消除二层环路,同时还具备链路备份的功能。    与众多协议的发展过程一样,生成树协议也是随着网络的发展而不断更新的,从最初的 STP( Spanning Tree P...
      99+
      2023-01-31
      H3C MSTP
    • XML概述3
      无效、有效以及格式良好的文档    有三种XML文档:     无效文档:没有遵守XML规范定义的语法规则。如果开发人员已经在DTD或模式中定义了文档能够包含什么,而某个文档没有遵守那些规则,那么这个文档也是无效的。    有效文档:即遵守...
      99+
      2023-01-31
      XML
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作