有时我们须要对运行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. [React] Return a list of elements from a functional component in React

    We sometimes just want to return a couple of elements next to one another from a React functional co ...

  2. 使用JMeter3.0实战之分布式并发测试以及web API接口测试

    简介: 该文档是以Apche JMeter-3.0为例进行编写的,通过网上的学习资料和官方文档的说明手册学习后,进行项目操作实践,将测试的过程记录下提供给大家学习. 本博文的内容主要是进行配置JMet ...

  3. Zigbee事件

    ZIGBEE事件有两类.系统定义事件和用户定义事件. 系统类事件是协议栈已定义好的.用户类事件是我们用户层面来定义的. 事件类号採用一个16bit的常量,使用独热码编码,独热码是仅仅有一个bit为1, ...

  4. Git——使用gitignore建立项目过滤规则

    在进行协作开发代码管理的过程中,常常会遇到某些临时文件.配置文件.或者生成文件等,这些文件由于不同的开发端会不一样,如果使用git add . 将所有文件纳入git库中,那么会出现频繁的改动和push ...

  5. Android之——ContentResolver查询的三种方式

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47785491 今天做到一个小项目.查询手机中短信的信息,当然得去系统暴露出来的数据 ...

  6. asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(一)—— 手把手教你创建第一个三层架构+mvc的asp.net项目

    下面开启项目 1. 打开vs2010-文件-新建项目 2. 先创建一个空的解决方案: 选择其他项目类型-visual studio 解决方案-空白解决方案(默认.NET Framework 4),项目 ...

  7. MvcPager帮助文档 - MvcAjaxOptions 类

    表示用于 MvcPager 在 Ajax 分页模式下的选项设置,该类继承自 AjaxOptions. 公共属性: 名称 说明 默认值 AllowCache 获取或设置一个值,该值指示是否在Ajax分页 ...

  8. /u200B 8203 Zero-width space 问题

    [TestMethod] public void TestBom() { string str = "123​";//这个字符串是错误的有问题 长度4 ).Select(x =&g ...

  9. 转:EMQ(emqttd) 2.x 安装和使用(物联网传输控制协议的Broker)

    支持下国产开源. MQTT物联网传输控制协议:<MQTT-3.1.1-CN.pdf> 下载:emqttd-centos64-v2.0-rc.2-20161019.zip 安装: $ unz ...

  10. 过滤NSString中的Emoji

    有时候由于项目需求.要过滤NSString中的emoji. 比方下面情况: 要跟android互通,android假设还没做这方面的支持. 内容做为手机短信发出去. 思路例如以下,遍历NSString ...