Druid是什么?

Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。

Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。

同时Druid不仅仅是一个数据库连接池,它包括四个部分:
Druid是一个JDBC组件,它包括三个部分:

Druid可以做什么?

  • 替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
  • 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
  • 数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
  • SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。
  • 扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter机制,很方便编写JDBC层的扩展插件。

在项目中使用Druid非常简单,只要修改下配置文件就可以了

下载 druid-0.2.20.jar http://download.csdn.net/detail/wind520/5670085

applicationContext.xml 数据源配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:aop="http://www.springframework.org/schema/aop"
  5. xmlns:tx="http://www.springframework.org/schema/tx"
  6. xsi:schemaLocation="
  7. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
  8. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
  9. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
  10. <description>Spring公共配置文件 </description>
  11. <!-- 定义受环境影响易变的变量 -->
  12. <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  13. <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
  14. <property name="ignoreResourceNotFound" value="true" />
  15. <property name="locations">
  16. <list>
  17. <!-- 标准配置 -->
  18. <value>classpath*:/application.properties</value>
  19. </list>
  20. </property>
  21. </bean>
  22. <!-- 数据源配置,使用应用内的c3p0数据库连接池 -->
  23. <!--
  24. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
  25. <property name="driverClass" value="${jdbc.driverClassName}"/>
  26. <property name="jdbcUrl" value="${jdbc.url}"/>
  27. <property name="user" value="${jdbc.username}"/>
  28. <property name="password" value="${jdbc.password}"/>
  29. <property name="initialPoolSize" value="5"/>
  30. <property name="minPoolSize" value="5"/>
  31. <property name="maxPoolSize" value="100"/>
  32. <property name="checkoutTimeout" value="5000"/>
  33. <property name="maxIdleTime" value="1800"/>
  34. <property name="idleConnectionTestPeriod" value="3000"/>
  35. <property name="acquireIncrement" value="3"/>
  36. </bean>
  37. -->
  38. <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
  39. <property name="url" value="${jdbc.url}" />
  40. <property name="username" value="${jdbc.username}" />
  41. <property name="password" value="${jdbc.password}" />
  42. <property name="filters" value="stat" />
  43. <property name="maxActive" value="20" />
  44. <property name="initialSize" value="1" />
  45. <property name="maxWait" value="60000" />
  46. <property name="minIdle" value="1" />
  47. <property name="timeBetweenEvictionRunsMillis" value="3000" />
  48. <property name="minEvictableIdleTimeMillis" value="300000" />
  49. <property name="validationQuery" value="SELECT 'x'" />
  50. <property name="testWhileIdle" value="true" />
  51. <property name="testOnBorrow" value="false" />
  52. <property name="testOnReturn" value="false" />
  53. <property name="poolPreparedStatements" value="true" />
  54. <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
  55. </bean>
  56. <!-- Hibernate配置 -->
  57. <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  58. <property name="dataSource" ref="dataSource" />
  59. <property name="hibernateProperties">
  60. <props>
  61. <prop key="hibernate.dialect">${jdbc.dialect}</prop>
  62. <prop key="hibernate.show_sql">true</prop>
  63. <prop key="hibernate.format_sql">true</prop>
  64. <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory</prop>
  65. <prop key="hibernate.cache.provider_configuration_file_resource_path">${hibernate.ehcache_config_file}</prop>
  66. <prop key="hibernate.cache.use_query_cache">true</prop>
  67. <prop key="hibernate.cache.use_second_level_cache">true</prop>
  68. </props>
  69. </property>
  70. <property name="packagesToScan">
  71. <list>
  72. <value>com.kingmed.jusmartcare.health.entity</value>
  73. </list>
  74. </property>
  75. </bean>
  76. <!-- 事务管理器配置,单数据源事务 -->
  77. <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
  78. <property name="sessionFactory" ref="sessionFactory" />
  79. </bean>
  80. <!-- 使用annotation定义事务 -->
  81. <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
  82. </beans>

web.xml 加上

  1. <servlet>
  2. <servlet-name>DruidStatView</servlet-name>
  3. <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
  4. </servlet>
  5. <servlet-mapping>
  6. <servlet-name>DruidStatView</servlet-name>
  7. <url-pattern>/druid/*</url-pattern>
  8. </servlet-mapping>

就可以了.
监控页面

 
原地址:http://blog.csdn.net/wind520/article/details/9202555
 

应用Druid监控SQL语句的执行情况(转)的更多相关文章

  1. 应用Druid监控SQL语句的执行情况

    Druid是什么? Druid首先是一个数据库连接池.Druid是目前最好的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.JBo ...

  2. 应用Druid监控SQL语句的执行情况--转载

    Druid是什么? Druid首先是一个数据库连接池.Druid是目前最好的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.JBo ...

  3. 查看sql 语句io执行情况

    set statistics io,time on 表 'xx'.扫描计数 1,逻辑读取 19 次,物理读取 0 次,预读 0 次,lob 逻辑读取 76 次,lob 物理读取 0 次,lob 预读 ...

  4. 监控SQL Server正在执行的SQL语句和死锁情况

    原文:监控SQL Server正在执行的SQL语句和死锁情况 SELECT [Individual Query] = SUBSTRING(qt.TEXT, er.statement_start_off ...

  5. SpringMVC4+MyBatis+SQL Server2014+druid 监控SQL运行情况

    前言 在基于SpringMVC+MyBatis的开发过程中,我们希望能看到自己手写SQL的执行情况,在开发阶段我们可以配置log4j在控制台里基于debug模式查看,那么上线后,在生产声我们想查看SQ ...

  6. 【转】SQL Server 运行状况监控SQL语句

    SQL Server 运行状况监控SQL语句   Microsoft SQL Server 2005 提供了一些工具来监控数据库.方法之一是动态管理视图.动态管理视图 (DMV) 和动态管理函数 (D ...

  7. Oracle种常用性能监控SQL语句

    --Oracle常用性能监控SQL语句 --1 SELECT * FROM SYS.V_$SQLAREA WHERE DISK_READS > 100; --2 监控事例的等待 SELECT E ...

  8. mysql(1)—— 详解一条sql语句的执行过程

    SQL是一套标准,全称结构化查询语言,是用来完成和数据库之间的通信的编程语言,SQL语言是脚本语言,直接运行在数据库上.同时,SQL语句与数据在数据库上的存储方式无关,只是不同的数据库对于同一条SQL ...

  9. mybatis下使用log4j打印sql语句和执行结果

    转载自:https://www.cnblogs.com/jeevan/p/3493972.html 本来以为很简单的问题, 结果自己搞了半天还是不行; 然后google, baidu, 搜出来各种方法 ...

随机推荐

  1. netty4 连通步骤

    转载:http://xw-z1985.iteye.com/blog/1973205 服务端依次发生的步骤 建立服务端监听套接字ServerSocketChannel,以及对应的管道pipeline: ...

  2. Snappy压缩

    Snappy压缩时,碰到不能解压问题,所用服务器Tomcat8.经验证,降低Tomcat版本为7,才可正常解压文件. 若碰到偶尔不能解压的问题,试着换个浏览器试试.

  3. CentOS命令登录MySQL时,报错ERROR 1045 (28000):

    CentOS命令登录MySQL时,报错ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)错误解 ...

  4. VS2005保存文件很慢

    VS2005出了点毛病,边的出奇的慢,简直不可忍受. 症状是:保存文件很慢,哪怕是修改一个变量,也要等上大概20秒 保存文件的时候,VS2005会在局域网内寻找一个主机当这个主机不在线的时候vs200 ...

  5. 二模 (8) day2

    第一题: 题目描述: 有 n 个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸.每个炸弹还有个得分,当这个炸弹被引爆后就能得 ...

  6. comboBox绑定数据库、模糊查询

    实现: 一.绑定数据库 点击查询按钮,comboBox显示从数据库查到的某字段的一列数据 方法:在按钮的点击事件绑定数据库 private void button1_Click(object send ...

  7. 文件浏览器及数码相框 -2.3.2-freetype_arm-1

    交叉编译:tar xjf freetype-2.4.10.tar.bz2 ./configure --host=arm-linuxmakemake DESTDIR=$PWD/tmp install f ...

  8. Android 获取网络状态

    1.检测网络是否可用 public boolean isNetWorkConnected() { ConnectivityManager cm = (ConnectivityManager)getSy ...

  9. Installing Cygwin and Starting the SSH Daemon

    This chapter explains how to install Cygwin and start the SSH daemon on Microsoft Windows hosts. Thi ...

  10. 【python】list。列表

    列表 list 特点:有序,支持不同类型的元素在一个列表中,可变(使用sort方法排序,影响到的是列表自身而不是创建新的列表——这与字符串不同,所以说字符串是不可变的) 在python中列表也是对象, ...