我们可能已经很熟悉在未使用数据库连接池的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. 怎么用BarTender的格式刷

    BarTender的新格式刷使您能够轻松地在模板上的多个对象之间共享格式.您可以在单个模板中以及在多个BarTender模板和文档之间复制对象样式.下面小编给大家来讲讲BarTender格式刷这一可用 ...

  2. 结构体struct 与 联合union

    1.C语言中的结构体 1.1 定义 结构体是由一系列相同或不同类型的变量组成的集合. struct 结构体名{               //struct为关键字,“结构体名”为用户定义的类型标识. ...

  3. 关于无法使用xx-pc附加到应用程序iisexpress.exe

    问题表现:1.本地调试F5不能调试 2.IIS调试 附加到进程 提示无法访问 解决方法: 用管理员身份在cmd中运行:netsh winsock reset,然后重启.

  4. 获取与Url链接相关的信息

    以下结果的值以此示例为基础:http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere j ...

  5. angular2开发01

    // */ // ]]> angular2开发01 1. angular2 开发准备 1.1. 安装node 1.2. 安装npm 1.3. 运行qickStart 1 angular2 开发准 ...

  6. 移动互联网广告 - 第十更 - 广告投放运营 DashBoard - 2016/12/10

    广告投放运营 DashBoard设计 移动互联网互联网广告投放,数据监控DashBoard,基础样例示意,下图仅供参考(来自于互联网).

  7. svn 权限配置

    svnserve.conf开启权限 auth中以下设置 重启SVN服务

  8. xcode中使用xib添加autolayout中constrain to margins的不同

    在使用xcode7 在storyboard中添加autolayout中发现 如果添加在view 直接添加到viewcontroller的view 上 constrain to margins    只 ...

  9. BizTalk调用WS-Security的web services

    最近做个项目,biztalk跟OTM(Oracle Transportation Management)系统做对接,双方通过web services通讯,这部分是BizTalk调用OTM的web se ...

  10. Codeforces Round #381 (Div. 2)B. Alyona and flowers(水题)

    B. Alyona and flowers Problem Description: Let's define a subarray as a segment of consecutive flowe ...