有时我们须要对运行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. win 8 远程桌面文件复制问题(图)

    用win7连接远程桌面.能够非常方便的在宿主机之间文件复制粘贴. 但用win8.1远程连接桌面时,却发现不能拷贝文件了.查看网上资料,最后总结实现此步骤例如以下: win+R,执行mstsc.例如以下 ...

  2. 【Bootstrap 多级菜单】

    参考资料: Bootstrap-submenu:http://www.html580.com/11848/demo Bootstrap-submenu:https://vsn4ik.github.io ...

  3. java基础知识汇总4

    三.集合(collection.set.list.map) 一.定义: 集合是Java里面最经常使用的,也是最重要的一部分.可以用好集合和理解好集合对于做Java程序的开发拥有无比的优点. 容器:用来 ...

  4. ThreadLocal的实现原理(读书笔记)

    ThreadLocal的set方法和get方法,从set方法开始: public void set(T value) { Thread t = Thread.currentThread();//获取当 ...

  5. Subl 命令

    Subl 是sublime 的命令 添加环境变量后可以,在cmd 或者git 下直接 使用subl 进行 打开sublime Example:     Subl 打开编辑器     Subl . 将当 ...

  6. Android - 错误:Unable to instantiate application

    错误:Unable to instantiate application 本文地址: http://blog.csdn.net/caroline_wendy 错误:java.lang.RuntimeE ...

  7. XYWi-Fi v2.0 简单的笔记本无线热点分享工具【Win】

    [软件名称]XYWi-Fi [版本号]v2.0 [适用系统]Windows 7/8/8.1/10 [功能特性]简单的笔记本无线热点分享工具 [下载地址]pan.baidu.com/s/1mgmOpJi ...

  8. 严重: Exception sending context initialized event to listener instance of class org.springframework.we

    2014-6-1 0:47:25 org.apache.catalina.core.AprLifecycleListener init 信息: The APR based Apache Tomcat ...

  9. lucene 查询

    csdn blog - Lucene 3.0 的Query Parser(查询语法)   ibm developerWorks - 使用 Apache Lucene 2.4.1 搜索文本   osch ...

  10. rsync权限操作

    rsync对目的端权限如果不使用 -a 或者-p   -a=-rlptgoD 目的端的目录和文件权限不会改变 同步过程中改变目录和文件权限用法: rsync -rltDvP --chmod=Dugo= ...