有时我们须要对运行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. Java案例:利用JDBC连接Oracle数据库

    Java案例:利用JDBC连接Oracle数据库 一.准备工作 1.启动SQL Developer,设置java.exe路径 2.在Oracle SQL Developer里,新建数据库连接 连接名: ...

  2. 利用JDBC连接Oracle数据库

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

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

    解决centos下tomcat启动太慢 & JDBC连接oracle太慢的问题 参考文章: (1)解决centos下tomcat启动太慢 & JDBC连接oracle太慢的问题 (2) ...

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

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

  5. java启动监听器报错_JAVA通过JDBC连接Oracle数据库详解【转载】

    1.注册加载驱动 驱动名:DRIVER="oracle.jdbc.driver.OracleDriver"; Class.forName("驱动类名"); 2. ...

  6. jdbc连接orcle数据库_怎样利用JDBC连接并操作Oracle数据库

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

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

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

  8. oracle数据库从关闭到启动,Oracle数据库的启动和关闭详细过程

    一.数据库打开 startup数据库正常启动 1.startup nomount 启动 Oracle DB 实例:NOMOUNT ,创建sga,创建了alert日志,用于create db,creat ...

  9. 服务中启动oracle服务,Linux下如何自动启动Oracle服务

    在windows下,可以在计算机服务管理里将Oracle服务设置为自动,Linux中在Oracle安装完毕以后,如果重新启动Linux ,Oracle是不会自动启动的,你可以通过手动调用dbstart ...

  10. java jdbc连接oracle_Java使用JDBC连接Oracle 11gR2

    http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html下载Oracle 11gR2的数据库驱动程序:ojd ...

最新文章

  1. IPython4_Notebook
  2. 什么是ATM(异步传输模式)?—Vecloud微云
  3. Mac上因磁盘格式导致gulp无限刷新问题
  4. 个人周报20200420
  5. AutoCAD VBA对齐对象
  6. 3.关于QT中的MainWindow窗口,MenuBar,ToolBar,QuickTip等方面的知识点
  7. java.lang.UnsatisfiedLinkError: com.jacob.com.D...
  8. 第三次学JAVA再学不好就吃翔(part99)--File类
  9. AMD迎接变革:加速OpenCL的未来
  10. Petya and Staircases CF212div.2B
  11. .net5 不支持winform_「开源资讯」.NET 5.0 RC 2 发布
  12. 用SignalR 2.0开发客服系统[系列5:使用SignalR的中文简体语言包和其他技术点]
  13. mysql 80070057_返回E_INVALIDARG (0x80070057)
  14. 支付宝钱包流量电量优化实践
  15. html怎么让form弄成一个表,创建一个HTML表,其中每个TR是一个FORM
  16. C#学习笔记-WPF框架(MvvmLight)
  17. Yolov5:报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xad in position 577
  18. 源码之家(源代码下载分享)
  19. 苹果序列号查询api查询序列号和苹果产品信息
  20. python全0列表_Python 列表(Lists)

热门文章

  1. Linux_free(buffer与cache区别)
  2. 如何为Kalman Studio编写T4模板
  3. 好的项目需要有好的需求
  4. Python机器学习(基础篇---监督学习(k近邻))
  5. Linux使用jstat命令查看jvm的GC情况(转)
  6. Hadoop学习笔记—5.自定义类型处理手机上网日志
  7. 如何在sublime编辑器中,执行命令行脚本
  8. 开源DataGridView扩展(6) 简单实现checkbox行选级联。
  9. python连接mysql数据库简单例子
  10. RPC理论以及Dubbo的使用介绍