当前位置: 首页 > news >正文

做公司网站的公司中国建设银行官网站下载中心

做公司网站的公司,中国建设银行官网站下载中心,中关村手机报价大全,广州金融网站设计新一篇: 关于java类的动态装载 几乎 80% - 85% 的数据库性能问题是由于应用数据库的设计或者应用程序本身的代码所引起的。因此良好的事务处理能力需要在设计应用程序的时候#xff0c;在设计数据库的时候就考虑到性能和伸缩性。 ---- DB2 Magazine 在我们 Java 开发应用程序的… 新一篇: 关于java类的动态装载 几乎 80% - 85% 的数据库性能问题是由于应用数据库的设计或者应用程序本身的代码所引起的。因此良好的事务处理能力需要在设计应用程序的时候在设计数据库的时候就考虑到性能和伸缩性。 ---- DB2 Magazine 在我们 Java 开发应用程序的过程中难免会碰到系统的性能问题特别在企业应用的开发过程中都会与数据库进行打交道。当我们碰到数据库性能时最有效的就是直接跟踪每一个 SQL 语句的执行情况SQL 语句的优化、索引的优化往往也是最容易取得最直接的效果的。 下面我们首先开始介绍 P6Spy 这个剖析工具看它是如何无侵入性地进行数据库操作的监控与剖析。 P6Spy P6Spy 是一个可以用来在应用程序中拦截和修改数据操作语句的开源框架。通过 P6Spy 我们可以对 SQL 语句进行拦截相当于一个 SQL 语句的记录器这样我们可以用它来作相关的分析比如性能分析。P6Spy 用 Log4J 来记录 JDBC 调用的日记信息。 自从 2003 年 11 月 30 日 P6Spy 版本 1.3 发布后已经被下载超过 19,000 次了。P6Spy 支持 WebSphere、WebLogic、JBoss、Resin 和 Tomcat 等绝大多数的应用服务器。 使用步骤 首先你的应用系统应当是基于数据库的然后你需要去获取 P6Spy 相关的文件在 参考资源 中可以找到下载链接您可以直接下载软件包。下面介绍 P6Spy 的安装与使用的详细操作过程 下载 P6Spy 的文件包也可以下载它的源文件包来研究 把 P6Spy 的 jar 包 p6spy.jar 放到 CLASSPATH 中如果是 Web 应用程序则放在 YourWebApp/WEB-INF/lib/ 目录下 把 spy.properties 放到 CLASSPATH 目录下如果是 Web 应用程序放在 YourWebApp/WEB-INF/classess/ 目录下注意不是 lib/ 目录 修改你应用系统中的数据库驱动名称为 P6Spy 的驱动程序名称 com.p6spy.engine.spy.P6SpyDriver 其它的全部使用默认值暂时先都不用修改 打开配置文件 spy.properties 文件找到 realdriver把它的值改为你的应用系统的真正的数据库驱动名称 运行你的应用程序或 Web 应用程序可以在 spy.log 里看到 P6Spy 监测到的 SQL 详细的执行与操作的记录信息了包含有完整的 SQL 执行参数。 P6Log 与 P6Outage 在 P6Spy 发布包中它包含 P6Log 和 P6Outage 两个模块 P6Log P6Log 是用来拦截和记录任务应用程序的 JDBC 语句的。这个功能对于开发者监控 EJB 服务器上的 SQL 语句执行情况尤其有用可以让开发者完成尽可能高效的代码。同时 P6Spy 的部署是极其简单的而且根本不需要更改任何一行代码即对现有的应用是无侵入性的。 realdriver (your driver) (你的实际 JDBC 驱动程序名称)executionthreshold整数时间 (以毫秒为单位) P6Outage P6Outage 专门用来检测和记录执行时间比较长的 SQL 语句P6Outage 只记录超过配置条件里时间的那些信息并对可能影响到数据库的运行效率减小到最低。 #outagedetectiontrue|false (是否记录较长时间运行的语句)#outagedetectioninterval整数时间 (以秒为单位) 架构原理 简单地讲我们可以认为 P6Spy 就是一个代理Proxy它只做了一层对 JDBC 驱动的拦截然后转发出去这样的设计与实际的应用程序没有任何的耦合性除了在配置中将驱动程序改成 P6Spy 的拦截驱动外程序其他地方并不需要做任何的改变。这层拦截器除了可能会给系统带来略微的性能下降外对程序其他方面没有任何的影响。而相对于这一点点的性能下降在开发环境中对于开发人员来说是无法感觉到相比它所带来的好处完全可以忽略不计。 图 1. P6Spy 对数据库进行拦截监控的处理过程问题与解决 如果在你的应用程序启动后却在 spy.log 文件中发现了如下的提示信息那就是驱动程序加载先后的问题了。 你的程序的数据库驱动名称 is a real driver in spy.properties, but it has been loaded before p6spy. p6spy will not wrap these connections. Either prevent the driver from loading, or try settingderegisterdrivers to true in spy.properties 请把 spy.properties 配置文件里的 deregisterdriversfalse 改为 deregisterdriverstrue重新运行即可。 这是因为有些应用系统中会先于 P6Spy 加载了真正的数据库的驱动程序导致 P6Spy 无法监控到设置 deregisterdrivers 为 true是显式地把真正的数据库的驱动程序进行反注册掉而采用 P6Spy 的驱动程序。 配置参数及相关意义 下表列出了 spy.properties 配置文件中的各配置项的名称、默认值及其意义和相关注意事项 配置项名称默认值配置项意义及相关注意事项module.logcom.p6spy.engine.logging. P6LogFactory用来拦截和记录任务应用程序的 JDBC 语句。若无配置或注释掉则无此功能。module.outagecom.p6spy.engine.outage. P6OutageFactory检测和记录执行时间比较长的 SQL 语句。若无配置或注释掉则无此功能。realdriver 真正的应用系统使用的数据库驱动程序名称。realdriver2 真正的应用系统使用的第二种备用数据库驱动程序名称。realdriver3 真正的应用系统使用的第三种备用数据库驱动程序名称。deregisterdriversfalse显示地把真正的数据库的驱动程序进行反注册掉。取值 true| falseexecutionthreshold P6Log 模块执行时间设置整数值 (以毫秒为单位)只有当超过这个时间才进行记录 Log。outagedetectionfalseP6Outage 模块是否记录较长时间运行的语句。取值 true| falseoutagedetectioninterval P6Outage 模块执行时间设置整数值 以秒为单位)只有当超过这个时间才进行记录 Log。filterfalse是否过滤 Log取值 true| falseinclude 过滤 Log 时所包含的表名列表以逗号分隔。exclude 过滤 Log 时所排除的表名列表以逗号分隔。sqlexpression 过滤 Log 时的 SQL 表达式名称autoflushtrue是否自动刷新。取值 true| falsedateformat 设置时间的格式也就是用 Java 的 SimpleDateFormat 程序。includecategories 显示指定过滤 Log 时包含的分类列表取值为 errorinfobatchdebugstatementcommitrollbackresult 的各种组合。excludecategories 显示指定过滤 Log 时排队的分类列表取值同上。stringmatcher 使用正则表达式来过滤 Log取值为 com.p6spy.engine.common.GnuRegexMatcher 和 com.p6spy.engine.common.JakartaRegexMatcherstacktracefalse打印堆栈跟踪信息。取值 true| falsestacktraceclass 如果 stacktracetrue则可以指定具体的类名来进行过滤。reloadpropertiesfalse监测属性配置文件是否进行重新加载。取值 true| falsereloadpropertiesinterval60属性配置文件重新加载的时间间隔以秒为单位。useprefixfalse是否加上前缀设置为 true会加上 p6spy: 作为前缀。取值 true| falseappendercom.p6spy.engine.logging. appender.FileLogger指定 Log 的 appender与 Log4J 有点同义取值com.p6spy.engine.logging.appender.Log4jLogger、com.p6spy.engine.logging.appender.StdoutLogger 和 com.p6spy.engine.logging.appender.FileLoggerlogfilespy.log指定 Log 的文件名任何适于操作系统的文件。appendtrue指定是否每次是增加 Log设置为 false 则每次都会先进行清空。取值 true| falselog4j.appender.STDOUTorg.apache.log4j.ConsoleAppender当 appender 为 log4j 时采用的配置配置如同 Log4J 的相关配置。log4j.appender.STDOUT.layoutorg.apache.log4j.PatternLayout同上log4j.appender.STDOUT. layout.ConversionPatternp6spy - %m%n同上log4j.logger.p6spyINFO,STDOUTLog 级别的设置取值同 Log4J 的配置realdatasource 设置数据源 DataSource 的配置名称。realdatasourceclass 设置数据源 DataSource 的类的全称。realdatasourceproperties 设置数据源 DataSource 的属性以分号分隔。jndicontextfactory 设置 JNDI 数据源的 NamingContextFactory。jndicontextproviderurl 设置 JNDI 数据源的提供者的 URL。jndicontextcustom 设置 JNDI 数据源的一些定制信息以分号分隔。回页首SQL Profiler SQL Profiler 是一个由 Jahia.org 提供的基于 P6Spy 引擎的快速剖析工具用来统计 SQL 查询语句以便了解哪里是性能瓶颈在哪里创建索引或者采取相应的办法才能提高效率并且能根据 SQL 查询语句的情况帮你生成合适的索引脚本。 这个小工具可以实时地显示数据库查询的情况通过集成的 SQL 解析器在访问大多数表与列上面建立统计分析并生成索引脚本。当然其它的信息也会进行收集和显示比如单个数据库请求的时间、一类请求的时间以及所有请求的时间。因此可以有效地通过视图的排序来检测数据的性能问题所在。这个工具对于大量的需要进行分析的请求是非常有用的而不是人工一个个地去做分析。当你需要知道比如对相同的表和列进行访问但是采用不同的查询值时这种分组的查询可以用建立在 ANTLR 上的 SQL 解析器进行分析。 使用步骤 首先你的应用系统同样也应当是基于数据库的然后你需要去获取 SQL Profiler 相关的文件在 参考资源 中可以找到下载链接您可以直接下载软件包。下面介绍 SQL Profiler 的安装与使用的详细操作过程 下载 SQL Profiler 的文件包进行安装 把 p6spy.jar 及 sqlprofiler.jar 放到 CLASSPATH 中如果是 Web 应用程序则放在 YourWebApp/WEB-INF/lib/ 目录下 把 spy.properties 放到 CLASSPATH 目录下如果是 Web 应用程序就放在 YourWebApp/WEB-INF/classess/ 目录下注意不是 lib/ 目录 修改你应用系统中的数据库驱动名称为 P6Spy 的驱动程序名称 com.p6spy.engine.spy.P6SpyDriver 其它的全部使用默认值暂时不用修改 打开 spy.properties 文件把 realdriver 的值改为你的程序的数据库驱动名称 注意要先运行 java -jar sqlprofiler.jar 来启动 SQL Profiler并成功看到启动界面 然后再启动你的应用程序或服务器并开始进行正常的系统请求处理操作 这样就可以在 SQL Profiler 图形化的界面上看到结果并进行分析了。 分析结果 经过一段时间的系统运行后点击 Pause 按钮停止拦截可以得到分析结果如下图 图 2. SQL Profiler 的分析结果 Profiler 视图接着可以切换到 Loggers 视图这是 Lgger 视图的信息 图 3. SQL Profiler 的分析结果 Logger 视图当然也可以切换到 Analysis 视图这是 Analysis 视图的分析结果信息 图 4. SQL Profiler 的分析结果 Analysis 视图在经过分析后我们可以直接通过 SQLProfiler 提交的保存按钮直接导出应当进行数据库优化的建议的索引脚本通过查看索引脚本我们可以看到创建索引的详细 SQL 脚本这样我们就可以非常方便地进行数据库调优了。 问题与解决 最后一个需要注意的问题就是需要先启动 SQLProfiler然后再启动应用程序或者 Tomcat 等应用服务器。这是因为 SQLProfiler 默认使用的是 Log4j 的 SocketAppender所以要先启动。否则会因你的应用程序或应用服务器中的 Web 应用之类的因连接不到 Socket 的服务器SQLProfiler 相当于 Socket 的服务器而发生错误可以通过 SQL Profiler 控制界面最下面的连接状态就可以知道是否有程序连接上来。 图 5. SQL Profiler 处于非连接状态图 6. SQL Profiler 处于连接状态回页首IronTrack SQL IronEye一个专注于 JDBC 性能的监控和测试的开源项目它包含有三个工具IronEye SQLIronEye CacheIronTrack SQL。其中IronEye SQL 用于监测 Java 应用和数据库服务器之间查询开销的时间诊断在性能方面是否存在着相关问题让开发人员在测试之前就能发现问题。IronEye 于 2003 年 10 月 1 日开始基于 Apache Software License 发布。 IronEye SQL 这个轻量级的 Java 工具提供所有流动在数据库与应用程序之间的 SQL 统计信息并用多张图表展现可以快速优化程序的性能。 IronGrid 相对于 Continuous Integration 提出了 Continuous Performance 的概念即在项目开发过程中随时关注性能问题而不是传统的出了问题再解决的方案。 IronGrid 在应用程序对数据库的操作上的 Continuous Performance 是通过 IronTrack SQL 进行体现的。IronTrack SQL 能通过对 JDBC 的包装来拦截应用程序对数据库的请求完成性能监控。IronTrack SQL 的好处在于不需要修改任何代码或者在数据库端安装任何程序只需要在测试时把依赖的 JDBC 替换就可以了。 使用步骤 首先你的应用系统同样也应当是基于数据库的然后你需要去获取 IronTrack SQL 相关的文件在 参考资源 中可以找到下载链接您可以直接下载软件包。下面介绍 IronTrack SQL 的安装与使用的详细操作过程 下载 IronTrack SQL 的文件包进行安装 把 irontracksql.jar, p6spy.jar 和 log4j-1.2.8.jar 放到 CLASSPATH 中如果是 Web 应用程序则放在 YourWebApp/WEB-INF/lib/ 目录下 把 spy.properties 放到 CLASSPATH 目录下如果是 Web 应用程序就放在 YourWebApp/WEB-INF/classess/ 目录下注意不是 lib/ 目录 修改你程序的数据库驱动名称为 P6Spy 的驱动程序名称 com.p6spy.engine.spy.P6SpyDriver 其它的都不用更改 打开配置文件 spy.properties 文件找到 realdriver把它的值改为你的应用系统的真正的数据库驱动名称 设置监听端口号 monitorport2000 先运行 java -jar irontracksql.jar 来启动 IronTrack SQL 再启动你的应用程序或服务器 可以在 IronTrack SQL 图形化的界面上看到结果并进行分析了。 连接设置 点击“Config”按钮就可以设置主机名、端口与刷新的时间毫秒为单位。根据你的服务器与端口的不同而进行相应地改变下面以本地和 2000 端口刷新时间为 500 毫秒为示例。设置完成后确定点击“Connect”就可以连接应用系统并进行监测与分析了当要停止分析时只要点击“Disconnect”按扭即可立刻停止分析了。 在分析的过程中我们可以根据需要点击“Purge”按钮它可以清除目前所监测到的内容然后重新进行记录监测信息很方便地进行重新开始。 图 7. IronTrack SQL 连接示例分析结果 经过一段时间的系统运行后我们可以直接得到分析的结果与相应的图形分析示例。相关的信息显示如下 图 8. IronTrack SQL 分析结果Count 列显示 SQL 语句的调用次数 Avg Time 列显示 SQL 语句的执行平均时间 Max Time 列显示 SQL 语句花费的最高时间 SQL 列显示真正执行的 SQL 语句内容。 同时也可以通过设置过滤条件来显示指定条件的结果比如只关注平均调用次数大于 100 次 的结果。点击“Filtering”左边的小三角图标可以显示如下的过滤条件设置栏目 图 9. IronTrack SQL 设置相关的过滤条件设置完成后点击“Apply Filter”按钮即可以获取所需要的相关结果了。这样可以更加方便地集中精力进行所需要的内容分析可以更加方便快速地定位到问题的所在之处然后进行解决。 回页首总结 通过使用 P6Spy、SQL Profiler、IronTrack SQL 工具我们可以无侵入已有的应用系统而有效地进行数据库操作的监控与剖析为发现系统的性能瓶颈寻找系统的性能调优提供了相当便利的方法。 转载于:https://www.cnblogs.com/dainiao01/archive/2008/05/17/2250315.html
http://www.pierceye.com/news/536673/

相关文章:

  • 校园网站建设网成功做网站
  • 网站策划方案如何做网页设计师职业认知
  • 助孕网站优化推广项目名称有创意大全
  • 百度制作网站福州做商城网站公司
  • 周口师范做网站做类似昵图网网站
  • 岳阳企业网站建设网站服务器暂时不可用怎么办
  • 网站的站点的管理系统网站建设组织架构
  • 怎么制作网站视频教程wordpress 导入图片
  • 淘宝网发布网站建设wordpress不能翻页
  • 怎么样可以做网站wordpress gallery widget
  • 湖北网站推广公司技巧自己做app的软件
  • 网站梦打开又提示无法访问dw网页设计代码茶文化
  • 阳江营销型网站建设wordpress防攻击插件
  • 深圳电信网络建站东莞房价2022最新价格
  • 昆山营销型网站建设温州网上商城网站建设
  • 网站html动态效果asp化妆品网站源码
  • 丹东网站seo国家企业工商网查询
  • 好看云在线网站模板江西省建设厅教育网站
  • 小网站百度做一个网站怎么做呢
  • 城市分站seoseo相关岗位
  • 购物网站开发语言wordpress分类指定页面
  • 中企动力做网站的优势做招聘网站经营范围
  • 重庆企业网站排名优化方法百度录入网站
  • 做薪酬调查有哪些网站校园二手交易网站设计的原则
  • 建设电子商务网站的方法有?网站架构图
  • 网站运营阶段wordpress首页没有显示文章图片
  • 2个小时学会网站建设手机兼职快递录单员
  • 以前有个自助建设网站东莞路桥投资建设公司招聘
  • 电子游艺网站开发常德seo技术
  • 河北邢台wap网站建设南昌网页制作