在ADF中跟踪SQL执行时间实现代码
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
相关推荐
-
在ADF中跟踪SQL执行时间实现代码
ADF是oracle提供的一套企业开发的解决方案. 最近做性能测试, 需要获取当前页面有多少SQL 查询,花费多少时间.首先想到的就是常用的log4jdbc 结果 ADF 不支持封装的驱动.后尝试在Orace DB 层面上拦截,比较复杂还要设置数据库连接的sesson属性,也要修改以后代码. ADF 的ViewObjectImp 提供复写SQL调用的方法,但需要修改已有代码,最后还是修改ADF源码来达到不修改已有代码而获取到SQL执行时间. 先用改好的adfm.jar 覆盖已有的, 配置虚拟机启
-
PHP中防止SQL注入实现代码
一. 注入式攻击的类型 可能存在许多不同类型的攻击动机,但是乍看上去,似乎存在更多的类型.这是非常真实的-如果恶意用户发现了一个能够执行多个查询的办法的话.本文后面,我们会对此作详细讨论. 如 果你的脚本正在执行一个SELECT指令,那么,攻击者可以强迫显示一个表格中的每一行记录-通过把一个例如"1=1"这样的条件注入到WHERE子句中,如下所示(其中,注入部分以粗体显示): SELECT * FROM wines WHERE variety = 'lagrein' OR 1=1;'
-
在程序中压缩sql server2000的数据库备份文件的代码
怎样压缩sql server2000的数据库备份文件,像rar一样?小弟有一7m的sql server2000 数据库备份文件,在程序中怎样压缩啊? 复制代码 代码如下: procedure TForm1.Button2Click(Sender: TObject); var SHExecInfo: SHELLEXECUTEINFO; begin SHExecInfo.cbSize := sizeof(SHELLEXECUTEINFO); SHExecInfo.fMask :=
-
vue实现codemirror代码编辑器中的SQL代码格式化功能
vue实现codemirror代码编辑器中的SQL代码格式化功能 1.首先使用npm安装sql-formatter插件 npm install --save sql-formatter 2.然后引入该sql-formatter.js文件 import sqlFormatter from "sql-formatter"; 3.接下来就是针对需要格式化的代码调用该方法就OK啦 /*代码格式化*/ format(){ /*获取文本编辑器内容*/ let sqlContent="&q
-
如何获取C#中方法的执行时间以及其代码注入详解
前言 在优化C#代码或对比某些API的效率时,通常需要测试某个方法的运行时间,可以通过DateTime来统计指定方法的执行时间,也可以使用命名空间System.Diagnostics中封装了高精度计时器QueryPerformanceCounter方法的Stopwatch类来统计指定方法的执行时间: 1.使用DateTime方法: DateTime dateTime = DateTime.Now; MyFunc(); Console.WriteLine((DateTime.Now - dateT
-
php实现PDO中捕获SQL语句错误的方法
本文实例讲述了php实现PDO中捕获SQL语句错误的方法.分享给大家供大家参考,具体如下: 使用默认模式-----PDO::ERRMODE_SILENT 在默认模式中设置PDOStatement对象的errorCode属性,但不进行其他任何操作. 例如: 通过prepare()和execute()方法向数据库中添加数据,设置PDOStatement对象的erroCode属性,手动检测代码中的错误,操作步骤如下. $dbms='mysql';//数据库类型 $dbName='admin';//使用
-
图文详解HTTP头中的SQL注入
目录 1.HTTP头中的注入介绍 2.HTTP User-Agent注入 3.HTTP Referer注入 4.sqlmap安全测试 5.HTTP头部详解 总结 HTTP头中的SQL注入 1.HTTP头中的注入介绍 在安全意识越来越重视的情况下,很多网站都在防止漏洞的发生.例如SQL注入中,用户提交的参数都会被代码中的某些措施进行过滤. 过滤掉用户直接提交的参数,但是对于HTTP头中提交的内容很有可能就没有进行过滤. 例如HTTP头中的User-Agent.Referer.Cookies等. 2
-
Entity Framework中执行sql语句
一.为什么要在EF中执行SQL语句 使用EF操作数据库,可以避免写SQL语句,完成使用Linq实现,但为什么还要在EF中执行SQL语句呢.如果要写SQL语句,完全可以使用ADO.NET来操作数据库.这样说虽然没错,可是有些时候使用EF操作数据库还是有一些不方便的地方,例如:如果要修改某一条记录,按照EF的正常流程走,需要先把要修改的数据查询出来,然后在去修改,这样不仅麻烦而且性能也低,这时直接使用EF执行SQL语句性能会提高很多.而使用EF执行SQL又比ADO.NET方便,特别是在执行查询语句的
-
mysql查询语句中用户变量的使用代码解析
上一篇文章中我们介绍了MySQL优化总结-查询总条数.这篇文章我们来介绍下查询语句中的另一个知识:用户变量的使用代码解析. 先上代码吧 SELECT `notice`.`id` , `notice`.`fid` , `notice`.`has_read` , `notice`.`notice_time` , `notice`.`read_time` , `f`.`fnum` , `f`.`forg` , `f`.`fdst` , `f`.`actual_parking` AS `parking`
-
Shell脚本中执行sql语句操作mysql的5种方法
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的结果美化,需要进一步完善和调整.以下为具体的示例及其方法. 1.将SQL语句直接嵌入到shell脚本文件中 复制代码 代码如下: --演示环境 [root@SZDB ~]# more /etc/issue CentOS release 5.9 (Final) Kernel \r on an \
随机推荐
- SWT(JFace)体验之GridLayout布局
- Docker搭建私有镜像仓库的方法
- 基于JAVA的短信验证码api调用代码实例
- DEFER怎么用?
- BootStrap3学习笔记(一)之网格系统
- gridview行索引获取方法及实现代码(非js版)
- ASP.NET MVC5网站开发之业务逻辑层的架构和基本功能 (四)
- php二维码生成以及下载实现
- 利用transition实现文字上下抖动的效果
- jQuery学习笔记之入门
- PHP+shell实现多线程的方法
- easyUI combobox实现联动效果
- 浅谈Java代理(jdk静态代理、动态代理和cglib动态代理)
- nginx配置支持php的pathinfo模式配置方法
- SQL Server数据库的修复SQL语句
- PHP实现限制IP访问及提交次数的方法详解
- JavaScript 限制文本框不可输入英文单双引号的方法
- 基于C++ cin、cin.get()、cin.getline()、getline()、gets()函数的使用详解
- JS前端框架关于重构的失败经验分享
- 修复诺顿误删系统文件 下载