如何利用JDBC启动Oracle 自动追踪(auto trace)

有时我们需要对执行SQL的具体执行过程做一个追踪分析,特别是在应用程序性能优化的时候。Oracle两个工具可以帮助我们做好性能分析,一个是SQL_TRACE,一个是SESSION_EVENT。SQL_TRACE跟踪SQL执行过程,如解析时间、执行时间、查询时间等;SESSION_EVENT跟踪执行过程的等待事件,如等待客户端响应时间,等待本地磁盘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执行过程中的等待事件分析:

  • oracle服务器向客户端发送时等待时间为0,说明服务器端网络传输等没有问题
  • oracle服务器等待客户端响应总时间为5.92秒,说明客户端处理数据及网络传输等需要耗费一定时间
  • oracle服务器磁盘IO时间为48.37秒,说明主要时间耗在Oracle从磁盘中读取数据块上
  • 把数据分批次发送给客户端的时间耗费0.12秒,这个时间也是可以接受的

如何利用JDBC启动Oracle 自动追踪(auto trace)

时间: 2024-10-29 22:37:05

如何利用JDBC启动Oracle 自动追踪(auto trace)的相关文章

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

http://blog.csdn.net/wahaha1_/article/details/8512438 JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员

利用JDBC连接Oracle数据库【转】

JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,并且可跨平台运行,并且不受数据库供应商的限制. 1.跨平台运

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

之前学习.NET的时候.以前利用ODBC进行连接数据库,而在Java中通常採用JDBC连接数据库,这里以oracle数据库为例简单的总结一下利用JDBC怎样连接并操作数据库. 1.连接 public class DbUtil { public static Connection getConnection(){ Connection conn=null; try { Class.forName("oracle.jdbc.driver.OracleDriver");//找到oracle驱

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

一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据 量非常大的业务领域(如图象.档案等). LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对象(Binary Large Object),适用于存贮非文本的字节流数据(如程序.图象.影音等).而CLOB,即字符型大型对象(Character Large Obj

JavaWeb(三十五)——使用JDBC处理Oracle大数据

一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据 量非常大的业务领域(如图象.档案等). LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对象(Binary Large Object),适用于存贮非文本的字节流数据(如程序.图象.影音等).而CLOB,即字符型大型对象(Character Large Obj

1、启动oracle的步骤

1.启动oracle的步骤 Linux下启动oracle分为以下两步: 1.1.启动lsnrctl监听. 1.2.启动数据库实例. 2.启动oracle监听 首先登陆服务器,切换到oracle用户. [admin@dataserver ~]$ su - oracle 密码: [oracle@dataserver ~] 接下来,检查oracle监听器运行状态,通过lsnrctl status命令查看. [oracle@dataserver ~]$ lsnrctl status LSNRCTL fo

利用JDBC连接到数据库

利用JDBC连接到数据库一般需要几个步骤: 1.装载驱动程序. 2.建立连接. 3.发送和执行SQL语句. 4.释放资源 首先建立一个数据库: 脚本如下: 1 create database csdn; 2 use csdn; 3 -- 创建用户表 4 CREATE TABLE USERS 5 ( 6 ID INT(7) NOT NULL AUTO_INCREMENT, 7 NAME VARCHAR(50) , 8 PWD VARCHAR(50), 9 PHONE VARCHAR(50) , 1

如何教你快速通过一个cmd命令启动Oracle的两个相关服务

你安装好了Oracle数据库之后. 它都会默认开机自启服务. 而我们为了节省电脑资源就把它给调为手动. 我们调为手动之后以后要用到Oracle数据库就必须再去服务里面一个一个去启动. 这样是不是很麻烦? 我现在告诉你一个很方便得快捷方法.我也是偶然才发现的哦. 直接在cmd命令敲 startuporcl 就可以启动相关的两个orcl服务.然后关闭命令就是 shutdownorcl . 我想朋友肯定会问这个命令是怎么定义的?其实就是你命名批处理文件名的时候你写的什么就是什么. 注意:批处理文件命名

JAVA通过JDBC连接Oracle数据库详解【转载】

JAVA通过JDBC连接Oracle数据库详解 (2011-03-15 00:10:03) 转载▼http://blog.sina.com.cn/s/blog_61da86dd0100q27w.html Java连接Oracle步骤: 1.注册加载驱动 驱动名:DRIVER="oracle.jdbc.driver.OracleDriver"; Class.forName("驱动类名"); 2.获得连接 数据库地址: URL="jdbc:oracle:thi