我们可能已经很熟悉在未使用数据库连接池的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. Caffe+CUDA7.5+CuDNNv3+OpenCV3.0+Ubuntu14.04 配置参考文献 以及 常见编译问题总结

    Caffe+CUDA7.5+CuDNNv3+OpenCV3.0+Ubuntu14.04  配置参考文献 ---- Wang Xiao Warning: Please make sure the cud ...

  2. jffs2文件系统制作

    内核:                linux-3.0 uboot:             2010.09 开发板:             fl2440 交叉编译器:         2011. ...

  3. php lock_sh共享锁 与 lock_ex排他锁

    参考网站:http://hi.baidu.com/honly1215/item/8d27a66d11689c3aac3e83fe 文件锁有两种:共享锁和排他锁,也就是读锁(LOCK_SH)和写锁(LO ...

  4. DevWebForm控件,触发用客户端事件

    ClientInstanceName+".Raise"+"事件名", 例如: ClientInstanceName.RaiseValueChanged();

  5. mysql多个时间戳字段默认值问题

    项目使用mysql数据库,在设计表时某张表有多个字段设计的类型是timestamp 但没有给默认值,在执行sql时报 timestamp Invalid default value for 'xxx' ...

  6. [转]Windows进程间通信的各种方法

    http://www.cnblogs.com/songQQ/archive/2009/06/03/1495764.html 道相似,不过它传输数据是通过不可靠的数据报(如TCP/IP协议中的UDP包) ...

  7. javascript介绍

    1.javascript的简介 1.1javascript的特点 1.安全性(不允许方问本地硬盘),它可以做的是信息的动态交互. 2.跨平台.(只要是可以解释js的浏览器都可以执行,与平台无关) 1. ...

  8. Visual Studio 14 初试,vNext

    下了几天的VS 2014 .终于安装上了,花了好几天时间, VS 2014  下载地址, http://www.visualstudio.com/en-us/downloads/visual-stud ...

  9. Ubuntu14.04 安装Gitlab

    安装ubuntu 操作系统 除了 openssh server 其它都不需要 配置软件源 root@gitlab:~# cat /etc/apt/sources.list deb http://mir ...

  10. css全局样式

      @charset"utf-8"; *{margin:0;padding:0;} //去默认内外边距的简易写法 body,div,dl,dt,dd,ul,ol,li,h1,h2, ...