在ADF中跟踪SQL执行时间实现代码
程序员文章站
2023-12-03 17:25:16
adf是oracle提供的一套企业开发的解决方案。 最近做性能测试, 需要获取当前页面有多少sql 查询,花费多少时间。首先想到的就是常用的log4jdbc 结果 adf...
adf是oracle提供的一套企业开发的解决方案。
最近做性能测试, 需要获取当前页面有多少sql 查询,花费多少时间。首先想到的就是常用的log4jdbc 结果 adf 不支持封装的驱动。后尝试在orace db 层面上拦截,比较复杂还要设置数据库连接的sesson属性,也要修改以后代码。
adf 的viewobjectimp 提供复写sql调用的方法,但需要修改已有代码,最后还是修改adf源码来达到不修改已有代码而获取到sql执行时间。
先用改好的adfm.jar 覆盖已有的, 配置虚拟机启动参数 -dsqltruckertofile=d:\log.txt -denablesqltracker=true
重启就可以看到sql 执行时间了
195:<sql:>select geos.created_by, geos.created_ts, geos.fax_number, geos.from_email_address, geos.id, geos.modified_by, geos.modified_ts, geos.name, geos.phone_number, geos.reply_to_email_address, geos.is_default from geos geos order by geos.is_default,geos.name
195:<elapsedtime(ms):>729
最近做性能测试, 需要获取当前页面有多少sql 查询,花费多少时间。首先想到的就是常用的log4jdbc 结果 adf 不支持封装的驱动。后尝试在orace db 层面上拦截,比较复杂还要设置数据库连接的sesson属性,也要修改以后代码。
adf 的viewobjectimp 提供复写sql调用的方法,但需要修改已有代码,最后还是修改adf源码来达到不修改已有代码而获取到sql执行时间。
先用改好的adfm.jar 覆盖已有的, 配置虚拟机启动参数 -dsqltruckertofile=d:\log.txt -denablesqltracker=true
重启就可以看到sql 执行时间了
195:<sql:>select geos.created_by, geos.created_ts, geos.fax_number, geos.from_email_address, geos.id, geos.modified_by, geos.modified_ts, geos.name, geos.phone_number, geos.reply_to_email_address, geos.is_default from geos geos order by geos.is_default,geos.name
195:<elapsedtime(ms):>729