我们可能已经很熟悉在未使用数据库连接池的hibernate的环境下,配置p6spy和sql profiler.这在单独使用hibernate,以及项目初期是有效的.但是,在真实的开发环境下,往往是项目进行到中后期时,才考虑到优化系统的性能,才考虑优化sql和数据库设计,而且在很多的项目中都会采用数据库连接池.为了减少配置文件在jdbc和datasource之间的配置切换,能不能考虑在使用数据库连接池的hibernate环境下配置p6spy和sqlfiler呢?

配置p6spy  sqlprofiler

下面就以spring,hibernate环境为例来说明在使用数据库连接池情况下配置p6spy和sql profiler:

1.下载p6spy和sqlprofiler
        http://www.p6spy.com
         http://www.jahia.org

   2.把解压后得到的p6spy.jar加入项目文件的CLASSPATH.
   
    3.把解压sql profiler后得到的spy.properties放入运行环境的根目录(Eclipse中,将其置于src目录节点之下),修改spy.properties如下:
                              # the MySQL open source driver
                              realdriver=net.sourceforge.jtds.jdbc.Driver        //这里填写你用的实际数据库驱动
   
     4.
配置spring文件
         <bean id="dataSource"
              class="org.apache.commons.dbcp.BasicDataSource"
              destroy-method="close">
                    <property name="driverClassName" value="${jdbc.driverClassName}" />
                    <property name="url" value="${jdbc.url}" />
                    <property name="username" value="${jdbc.username}" />
                      <property name="password" value="${jdbc.password}" />
         </bean>
          <bean id="myDataSource" class="com.p6spy.engine.spy.P6DataSource" 
                                                  destroy-method="close">
                  <constructor-arg>
                         <ref local="dataSource"/>
                    </constructor-arg>
           </bean>

<!--Hibernate SessionFatory-->
          <bean id="sessionFactory"
                 class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
                 <property name="dataSource" ref="myDataSource" />
                 <property name="mappingDirectoryLocations">
                  <list>
                      <value>
                          classpath:/com/got/caip/domain/
                      </value>
                  </list>
                 </property>
                 <property name="hibernateProperties">
                     <props>
                         <prop key="hibernate.dialect">
                             org.hibernate.dialect.SQLServerDialect
                         </prop>
                         <prop key="hibernate.show_sql">
                                ${hibernate.show_sql}
                         </prop>
                         <prop key="hibernate.cache.use_query_cache">
                                ${hibernate.cache.use_query_cache}
                          </prop>
                   <prop key="hibernate.cache.provider_class">
                          ${hibernate.cache.provider_class}
                   </prop>
                   <prop key="hibernate.jdbc.batch_size">
                       20
                  </prop>
                   <prop key="net.sf.ehcache.configurationResourceName">
                          /ehcache.xml
                   </prop>
                  </props>
                   </property>
             </bean>

      5.通过Java -jar sqlprofiler启动sql profiler

J2EE应用监控后台执行SQL的更多相关文章

  1. mybatis前台传来一个String,后后台执行sql变成了true

    实际上参数传来的是一个字符串 3 ,不知道为什么会变成true 最后当然是查不到信息了.. 我在mapper映射文件里面使用了动态的where查询,我觉得跟这个关系不太大, 现在不知道怎么办,希望有思 ...

  2. 关于在页面上执行sql语句

    在页面上执行sql语句,首先在页面上顶一个文本域,让用户输入需要执行的sql语句. html代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML ...

  3. 监控mysql执行的sql语句

    linux平台 监控mysql执行的sql语句   为了做好配合开发做性能和功能测试,方便监控正在执行的sql语句, 可以在/etc/mysqld中添加如下:  log =/usr/local/mys ...

  4. MySQL监控全部执行过的sql语句

    MySQL监控全部执行过的sql语句 查看是否开启日志记录show variables like “general_log%” ; +——————+———-+|Variable_name|Value| ...

  5. 设置 sqlserver Profiler 只监控 EF的sql执行请求

    当我们用EF执行语句的时候,可以使用 sqlserver Profiler来监控到底执行了哪些sql语句,但是默认他是监控全局的,我们只想监控Ef的语句,这里如下设置 这样就只会监控 EF产生的 sq ...

  6. ASP.NET MVC5+EF6+EasyUI 后台管理系统(89)-EF执行SQL语句与存储过程

    这一节,我们来看看EF如何执行SQL语句与读取存储过程的数据,可能有一部分人,还不知道EF如何执行存储过程与原生SQL语句! 我们什么时候要直接使用原生的SQL语句? 返回值过于复杂 过于复杂的联合查 ...

  7. Spring+SpringMVC+MyBatis+easyUI整合优化篇(十一)数据层优化-druid监控及慢sql记录

    本文提要 前文也提到过druid不仅仅是一个连接池技术,因此在将整合druid到项目中后,这一篇文章将去介绍druid的其他特性和功能,作为一个辅助工具帮助提升项目的性能,本文的重点就是两个字:监控. ...

  8. druid监控及慢sql记录

    本文提要 前文也提到过druid不仅仅是一个连接池技术,因此在将整合druid到项目中后,这一篇文章将去介绍druid的其他特性和功能,作为一个辅助工具帮助提升项目的性能,本文的重点就是两个字:监控. ...

  9. SQL Server自动化运维系列——批量执行SQL脚本(Power Shell)

    需求描述 一般在生产环境中,在投产的情况下,需要批量的来执行SQL脚本文件,来完成整个投产,如果投产文件比较多的情况下,无疑这是一个比较痛苦的过程,所以本篇通过PowerShell脚本来批量完成. 监 ...

随机推荐

  1. zend studio 配置 apache服务器事宜

    安装好 zend studio后,配置 apache服务器时,设置 configuration directory时,需选中 xampp\apache里面的 conf 文件夹,即完整的路径为: *\x ...

  2. C#实现略缩图

    public class GenerateThumbnail { private Image imageFrom; /// <summary> /// 源图的路径(含文件名及扩展名 /// ...

  3. TFS下的源代码控制

    以下主要描述了: TFS源代码控制系统的基本场景 如何把一个项目添加到源代码管理中 如何与服务器同步 如何做Check-In 如何做分支与合并 什么是上架与下架 我们知道工作项是项目管理的基本元素,但 ...

  4. 打开页面自动打开QQ的javascript代码

    今天浏览个网站,发现我的QQ突然自动启动了,起初还以为中病毒了,后来找了半天无果,反而发现了几个无需启动的系统服务进程,遂管之. 后来打开网站的页面的源代码,发现一段javascript脚本,才知道我 ...

  5. [2014.01.27]WFsoft.wfLibrary.wfVerifyImage 1.8

    全新开发的验证码图片控件--WFsoft.wfLibrary.wfVerifyImage,使用简单,功能强大.     完全支持.net 2.0编写,对下一代操作系统平稳过渡.     同时支持.ne ...

  6. 承接Holograms外包 Holograms内容定制 Holograms场景外包开发

    HoloLens仿真器与文档现已向开发者们开放 如何为Microsoft HoloLens全息眼镜开发应用? 每款运行Windows 10的设备都使用了相同统一的Windows内核.所以你学习了所有有 ...

  7. powerdesigner导出word

    1.网上下载word模板,或者是自制模板 2.报告->导出,选择刚才下载的模板,导出即可

  8. 如何在ubuntu里面关掉后台的meteor

    kill -9 `ps ax | grep node | grep meteor | awk '{print $1}'` 或者远程终止服务器里面的meteor  ssh [user]@[server] ...

  9. 使用ionic framework创建一个简单的APP

    ionic是一个以cordova为基础的html5前端框架,功能强大,能够快速做出与原生开发相似的应用. 一,安装和配置 1,安装(前提:cordova环境配置完成) npm install -g i ...

  10. NPOIHelper

    public class NPOIHelper { public static void WriteDataToExceel(string fileName, DataSet ds) { if (Fi ...