本篇文章为大家展示了oracle 10046事件故障诊断分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
什么是事件?
EVENTS are primarily used to produce additional diagnostic information
when insufficient information is available to resolve a given problem.
An EVENT is a special item used by the Oracle server to do one of the following:
event是oracle服务器用于下述三种目的的一个特殊对象:
Change behaviour 改变状态(行为)
Enable collection of trace or debug information 开启收集trace或debug信息
Enable additional error checking or similar 开启额外错误信息检查或类似目的
什么是10046事件?
oracle调试事件之一,帮助我们解析 一条/多条SQL、PL/SQL语句的运行状态 ,这些状态包括 :Parse/Fetch/Execute三个阶段中遇到的等待事件、消耗的物理和逻辑读、CPU时间、执行计划等等。
[oracle@hhu mesg]$ oerr ora 10046
10046, 00000, "enable SQL statement timing"
// *Cause:
// *Action:
10046事件的几种典型用法
单条sql调试
多条sql调试
案例
通过awr报告或直接查询到该sql语句对应的sql id,然后在全局开启10046事件,追踪单条sql执行情况,同时请开发人员用zabbix监控,一旦发现该语句的执行有耗时超过10s级别的,立刻反馈。开发人员反馈捕捉到10s级别的执行情况后,关闭10046事件。进入到trace目录,用tkprof工具处理两份.trc文件,一份正常耗时,一份超时的,具体内容见另外两个文档。对比发现,两次sql执行的执行计划一致,但是超时的会处理上百万行数据,访问十几万个块,而正常耗时的则只是处理几十行数据。开发人员继而打印出语句中的绑定变量,发现超长耗时与具体绑定变量值相关。问题到此交与开发人员解决。
上述内容就是oracle 10046事件故障诊断分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/204002.html