碧荷故乡_胡奇的专栏

清清华堂,碧荷流香。悠悠十载,水木齐昌。鸿儒相往,以为故乡。日月沧沧,不弃不忘。千里殷望,难舍难量。祝纳四方,既寿永康。

胡奇ID:kthq
17993次访问,排名6482好友6人,关注者6
kthq的文章
原创 36 篇
翻译 1 篇
转载 6 篇
评论 32 篇
胡奇(依天把剑)的公告

胡奇 TIBCO CDC
——致力于企业流程管理和应用集成(Workflow, EAI, BPM)领域\面向服务的Web应用模式,及其相关SOA架构和JAVA技术应用
::开源项目::
ClearWork
DocBookBlank

Locations of visitors to this page
最近评论
视频聊天:爱情故事,视频聊天,视频聊天,
视频聊天:爱情故事,视频聊天,视频聊天,
视频聊天:爱情故事,视频聊天,视频聊天,
视频聊天:爱情故事,视频聊天,视频聊天,
视频聊天:爱情故事,视频聊天,视频聊天,
文章分类
收藏
    相册
    Blogger
    Workflow
    俠盜躶奔漢的专栏(RSS)
    胡长城(银狐999)BLOG(RSS)
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 提升基于JDBC的应用程序访问数据库的效率收藏

    新一篇: 面向对象的设计和开发不得不说的一些事 | 旧一篇: 中国历史上的豪言壮语之魏晋南北朝篇

    一般来说,我们的JavaEE - JDBC企业应用程序的主要瓶颈之一就是在访问数据库,而数据库的瓶颈又主要在海量数据的查询上。如何解决这个问题?最简单的方法就是为数据库表建立精确的索引。

    如何做到有效的建立索引?不妨利用P6Spy(http://www.p6spy.com/)及SQL Profiler(http://www.jahia.net/jahia/page597.html)软件包针对应用程序对数据的访问进行动态监测,通过利用P6Spy代理数据库驱动程序记录数据的访问、收集分析应用程序使用的SQL语句,找出性能瓶颈,生成优化方案报告及建立索引的SQL脚本。

    1. 获取 p6spy-install.jar (http://www.p6spy.com
    2. 从 p6spy-install.jar 中得到p6spy.jar,这就是监测程序的软件包,将其加入您的用程序classpath中。
    3. 将应用程序的数据库驱动改换成由P6Spy提供的代理驱动,在Spring中可以这样配置:
      <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        
      <!—这是你原来的数据库驱动:com.microsoft.jdbc.sqlserver.SQLServerDriver -->
        
      <property name="driverClassName">
          
      <!--这是P6Spy的代理驱动-->
          
      <value>com.p6spy.engine.spy.P6SpyDriver</value>
        
      </property>
        
      <property name="url">
          
      <value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=sample</value>
        
      </property>
        
      <property name="username"><value>sa</value></property>
        
      <property name="password"><value>sa</value></property>
      </bean>
    4. 修改 spy.properties 文件,在其中配置你真正的数据库驱动程序(详细下面说)。

    通过以上的步骤,你就完成的P6Spy的配置,启动应用后,P6Spy就会对您的应用进行监测并产生相应的日志文件。

    以下,我们将通过配置 SQL Profiler 对P6Spy的监测数据进行收集和分析: 

    1. 获取 sqlprofiler-0.3-bin.zip(http://www.jahia.net/jahia/page597.html
    2. 替代上面的步骤 4,从sqlprofiler-0.3-bin.zip中获取 spy.properties 配置文件,这就是P6Spy监测程序的配置文件,我们需要在这个文件中为代理配置真正的数据库驱动程序:
      # oracle driver
      # realdriver
      =oracle.jdbc.driver.OracleDriver

      # mysql Connector/J driver
      # realdriver
      =com.mysql.jdbc.Driver

      # informix driver
      # realdriver
      =com.informix.jdbc.IfxDriver

      # ibm db2 driver
      # realdriver
      =COM.ibm.db2.jdbc.net.DB2Driver

      # the mssqlserver driver
      realdriver
      =com.microsoft.jdbc.sqlserver.SQLServerDriver

      #specifies another driver to use
      realdriver2
      =
      #specifies a third driver to use
      realdriver3
      =
      最后,将这个文件放置在你应用程序classpath的根下即可。
    3. 在spy.properties中,我们还需要配置更多的信息以收集数据,可以利用Log4j向网络上输出性能监测数据,这样Sql Profiler软件包就能收到数据并进行分析,当然,您要在配置文件中指定接收数据的网络监听地址和端口。
      #specifies the appender to use for logging
      appender
      =com.p6spy.engine.logging.appender.Log4jLogger
      #appender
      =com.p6spy.engine.logging.appender.StdoutLogger
      #appender
      =com.p6spy.engine.logging.appender.FileLogger
      # name of logfile to use
      , note Windows users should make sure to use forward slashes in their pathname (e:/test/spy.log) (used for file logger only)
      #logfile     
      = spy.log

      # append to  the p6spy log file.  if this is set to false the
      # log file is truncated every time.  (file logger only)
      append
      =true

      #The following are for log4j logging only
      #log4j.appender.STDOUT
      =org.apache.log4j.ConsoleAppender
      #log4j.appender.STDOUT.layout
      =org.apache.log4j.PatternLayout
      #log4j.appender.STDOUT.layout.ConversionPattern
      =p6spy - %m%n

      log4j.appender.SQLPROFILER_CLIENT
      =org.apache.log4j.net.SocketAppender
      log4j.appender.SQLPROFILER_CLIENT.RemoteHost
      =localhost
      log4j.appender.SQLPROFILER_CLIENT.Port
      =4445
      log4j.appender.SQLPROFILER_CLIENT.LocationInfo
      =true

      #log4j.logger.p6spy
      =INFO,STDOUT
      log4j.logger.p6spy
      =DEBUG, SQLPROFILER_CLIENT
    4. 从sqlprofiler-0.3-bin.zip中获取 sqlprofiler.jar,这是一个图形界面的应用程序,它被用来接收监测数据(来自上面配置的P6Spy)和生成分析结果。

    至此,准备工作已经全部完成。执行分析的应用:

    首先执行 sqlprofiler.jar(利用javaw),其在指定端口监听应用程序通过Log4j发来的监测数据。接下来就可以运行经过P6Spy代理的应用程序了。

    在 SQL Profiler 的界面可以看到数据的采集。应用程序运行一段时间后(充分反映您应用程序的运行周期),点击“||”暂停按钮结束数据收集,接下来就是分析数据、生成解决方案、优化文件(索引脚本)。

    发表于 @ 2007年11月18日 22:51:00|评论(loading...)|编辑

    新一篇: 面向对象的设计和开发不得不说的一些事 | 旧一篇: 中国历史上的豪言壮语之魏晋南北朝篇

    评论

    #名字 发表于2007-12-22 22:44:59  IP: 124.192.209.*
    很久没有看到阁下的大作了 呵呵 有些相片好像不是和贴在博客上面吧
    #视频聊天 发表于2008-08-03 07:24:58  IP: 123.14.248.*
    爱情故事,视频聊天,视频聊天,美女视频,美女图片
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 胡奇(依天把剑)