有时我们须要对运行SQL的详细运行过程做一个追踪分析,特别是在应用程序性能优化的时候。Oracle两个工具能够帮助我们做好性能分析,一个是SQL_TRACE,一个是SESSION_EVENT。SQL_TRACE跟踪SQL运行过程。如解析时间、运行时间、查询时间等。SESSION_EVENT跟踪运行过程的等待事件。如等待client响应时间,等待本地磁盘IO事件等等。

     开启Oracle自己主动追踪必须使用DBA权限。

     使用JDBC开启SQL_TRACE的方法:
     conn.prepareStatement("alter
SESSION SET SQL_TRACE=TRUE");
 ps.execute();
     使用JDBC开启SESSION_EVENT的方法:
     开启:ps=conn.prepareStatement( "ALTER
SESSION SET EVENTS '10046 trace name context forever, level 12'");
 
ps.execute();
     关闭:ps=conn.prepareStatement( "ALTER
SESSION SET EVENTS '10046 trace name context off'");(在关闭连接前运行关闭追踪)

 
ps.execute();

以下是开启这两个追踪得到的trace文件:


      Oracle运行过程分析:
  • 在对运行sql的过程中,主要运行过程耗费在了Oracle的Fetch阶段
  • Fetch的OCI调用次数为146次 ,耗费时间为50.49秒。查询条数为145259条
       Oracle运行过程中的等待事件分析:
  • oracleserver向client发送时等待时间为0,说明server端网络传输等没有问题
  • oracleserver等待client响应总时间为5.92秒,说明client处理数据及网络传输等须要耗费一定时间
  • oracleserver磁盘IO时间为48.37秒,说明主要时间耗在Oracle从磁盘中读取数据块上
  • 把数据分批次发送给client的时间耗费0.12秒。这个时间也是能够接受的

怎样利用JDBC启动Oracle 自己主动追踪(auto trace)的更多相关文章

  1. 利用jdbc处理oracle大数据---大文件和二进制文件

    一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种 ...

  2. 利用jdbc连接oracle数据库

    JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java 数据库连接)是一种用于执行SQL语 ...

  3. 利用JDBC连接Oracle数据库(转)

    http://blog.csdn.net/wahaha1_/article/details/8512438 JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识 J ...

  4. 在linux oracle 10g/11g x64bit环境中,goldengate随os启动而自己主动启动的脚本

    在linux.oracle 10g/11g x64bit环境中,goldengate随os启动而自己主动启动的脚本 背景描写叙述: goldengate安装于/u01/ggs文件夹下 rhel5.5 ...

  5. 怎样利用JDBC连接并操作Oracle数据库

    之前学习.NET的时候.以前利用ODBC进行连接数据库,而在Java中通常採用JDBC连接数据库,这里以oracle数据库为例简单的总结一下利用JDBC怎样连接并操作数据库. 1.连接 public ...

  6. 解决centos下tomcat启动太慢 & JDBC连接oracle太慢的问题

    近期遇到一个非常奇怪的问题,也不知道改了什么,tomcat启动非常慢,以前几秒就启动好了,现在要30秒左右. 而且,通过jdbc连接oracle数据库也非常慢,以前建立一个连接只要几十毫秒,现在也要1 ...

  7. Oracle 自己主动诊断资料档案库 (ADR)、自己主动诊断工作流、ADRCI工具

    1.自己主动诊断工作流: 通过一个始终处于打开状态的内存中跟踪工具,数据库组件能够在第一次出现严重错误故障时捕获诊断数据.系统将自己主动维护一个称为"自己主动诊断资料档案库"的特殊 ...

  8. 使用JDBC处理Oracle大数据

    一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种 ...

  9. JavaWeb学习总结(三十五)——使用JDBC处理Oracle大数据

    一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种 ...

随机推荐

  1. extjs4权限管理,actioncolumn列显示隐藏或禁用

    //隐藏getClass: function(v, meta, rec) { if ( someCondition ) { return 'x-hidden' } }//加入其他样式getClass: ...

  2. Python 转义html中以"&#"开头的字符

    from HTMLParser import HTMLParser print HTMLParser().unescape('中国')

  3. [TypeScript] Create Explicit and Readable Type Declarations with TypeScript mapped Type Modifiers

    Using the optional “+” sign together with mapped type modifiers, we can create more explicit and rea ...

  4. 菜鸟调错(五)——jetty执行时无法保存文件

    背景交代: 上一篇博客写的是用jetty和Maven做开发.測试.在使用的过程中遇到一个小问题.就是在jetty启动以后,改动了jsp.xml等文件无法保存. 错误信息: 解决方式: 到Maven库( ...

  5. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何查看错误代码

    一般模块出错会在Error中显示为TRUE,同时ErrorID中会有一个错误代码,下图所示就是出错之后的效果   在变量表中也可以看到,右击转成16进制查看   由于是NC模块出错,所以可以再NC的E ...

  6. MYSQL百万级数据,如何优化

    MYSQL百万级数据,如何优化     首先,数据量大的时候,应尽量避免全表扫描,应考虑在 where 及 order by 涉及的列上建立索引,建索引可以大大加快数据的检索速度.但是,有些情况索引是 ...

  7. 《深入PHP:面向对象、模式与实践》(二)

    第4章 高级特性 本章内容提要: 静态属性和方法:通过类而不是对象来访问数据和功能 抽象类和接口:设计和实现分离 错误处理:异常 Final类和方法:限制继承 拦截器方法:自动委托 析构方法:对象销毁 ...

  8. GoldenGate Lag For Huge Insert

    前些天客户的ogg延迟到达8小时左右.于是我当时用logdump追踪了一下: 看进程状态: send extsa staus EXTRACT ZBDBA (PID 2269368) Current s ...

  9. ajax+webapi上传图片问题

    自己想写一个原生的JS的图片上传,不想一直只是使用上传文件的框架 网上有很多jquery上传图片上传文件的插件,但是要不是用特定的后台框架接收,要不就是只能上传图片,不是文件,还有一些其他的问题,所以 ...

  10. javascript 字符串对象新增 replaceAll 方法

    String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) { if(! RegExp.prototype.is ...