我现在碰到的一个问题是,我们的应用中在偶尔某些情况下,会出现申请数据库连接很慢的情况,有时甚至需要5、6秒钟。
但这是我们应用程序打出来的时间,实际上到调用oracle的oci接口中间还有一层中间件,这一层的中间件帮助我们屏蔽各个数据库的差异,实际调用oci接口是由该中间件完成的。
封装关系如下:
应用框架 ==> 中间件层 ==> oracle的oci接口因此我不能确定耗时到底在哪里?
我想问的是,oracle可不可以通过打开某些trace开关之类的,然后能将每一个数据库连接的申请、释放等耗时给打印到日志里?
有这样的功能么?急盼!谢谢。

解决方案 »

  1.   

    ORACLE监测不到外部应用程序连接的时间损耗,
    但是可以记录连接的记录,其中包含时间,
    select v.SID,v.USERNAME,v.PROGRAM,v.MACHINE,v.LOGON_TIME
    from v$session   v12 18 SYS plsqldev.exe ITPART\IT09 2010-03-23 11:16:44
    13 20 SYS plsqldev.exe ITPART\IT09 2010-03-23 11:16:38同时你在程序端进行时间记录,就可以做比较,哪里耗费的时间里,个人感觉网络是大因素