- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用pspy来观察Java程序中执行的所有SQL语句
/result.php?key=p6spy
用 p6spy 来观察 Java 程序中执行的所有 SQL 语句(一. 引子) 一个企业应用程序的性能瓶颈可能会在硬件配置、网络方面、程序代码、应用服务器配置、数据库配置、SQL 语句。这里我把本文的关注点 SQL 无意间放在了最后,其实它不并不意味着最后考虑的,而是过程中就要时刻留意的。
SQL 语句的优化总得把所执行语句抓出来瞧瞧,分析分析。如果直接用 JDBC 或者是类 iBatis 的东西来访问数据库,那所执行的 SQL 语句是明确的,而现在的项目大多会用 ORM 组件,例如 Hibernate、JPA、CMP、TopLink 都有自己特定的查询语法,最终当然要转换成 SQL 语句的,所以会生成什么样的 SQL 语句就不甚明了,若人为的看着专有查询语句来相象出 SQL 语句并非易事。虽然 Hibernate 设置 show_sql=true 时也能打印出生成的 SQL(带?号参数),配合详细的日志参数值也可以对上,不过挺麻烦的。
许多数据库本身就有 SQL 语句的跟踪功能。比如 Oracle 中,可以为某个用户开启 SQL 跟踪功能,根据条件把所执行的 SQL 语句记录在服务器的日志。或者可从 v$sql、v$sqltext、v$sqlarea 等视图中去查询所执行的 SQL 语句。
利用数据库的 SQL 功能需用特定于数据库的配置方法,好处就是不拘泥于某种编程语言。对于 Java 程序我们介绍 p6spy 组件,它可以拦截所有执行的 SQL 语句,而不管你使用的是什么 ORM 框架。对于 PrepareStatement 那样带参数(?) 的语句,它会帮你代上相应的参数值。
p6spy 的主页是 ,它支持当前流行的应用服务器,如 JBoss、Orion、Tomcat、WebLogic、WebSphere 等,在 /documentation/install.htm#install 介绍了 p6spy 的安装。其实不用太在意 p6spy 的安装说明,关键是要了解了某个应用服务器本身,要搞清楚的一个问题是“谁在加载 p6spy 包,从哪里加载”,那么配置 p6spy 就不成问题了,你甚至可以把 p6spy 用在独立的 Java 应用程序中。
p6spy 可以输出日志到文件中、控制台、或者传递给 Log4j,而且还能配搭 SQL Profiler 或 IronTrackSQL 图形化监控 SQL 语句,监测到哪些语句的执行是耗时的,逐个优化。关于与 SQL Profiler 或 IronTrackSQL 的配合使用可参数文件的链接。
原本写这个心里的布局是,先简介 SQL 跟踪,再引入 p6spy,然后讲讲在 Tomcat 中的配置,最后就是对 p6spy 作少许修改使之更符合自己的输出要求。可是前面一说又说便打不住了,生出了这许多累赘,那不妨顺势把介绍 p6spy 当成一个系列吧,不得已而把此编作为引子。下面分篇介绍 Tomcat 中的 p6spy 的配置,p6spy 的定制,必要时加上与 SQL Profiler 或 IronTrackSQL 的组合使用。
用 p6spy 来观察 Java 程序中执行的所有 SQL 语句(二. Tomcat 下的配置) 本文不打算依照官方的说明来做,我们让 Tomcat 的 Common 类加载器来加载 p6spy.jar 包,包含了 Tomcat 5/6 下的 p6spy 配置,数据库连接池实现用 C3P0,数据库为 Oracle,配置在一个与应用同名的单独的 xml 文件中,Tomcat 中是在应用的 META-INF/context.xml 文件中。步骤如下:
1. 软件准备
下载 Tomcat 5 或者 6 进行安装,不必多说。假设置 Tomcat 的目录为 $TOMCAT_HOME。
下载 p6spy-install.zip,解压缩 p6spy-install.zip,其中有 p6spy.jar 和 perties
准备好数据库的驱动包,比如 Oracle 的 classes12.jar,和 C3P0 实现包,如 c3p0-.jar。
2. 拷贝文件
在 Tomcat 5 下:
拷贝 p6spy.jar、classes12.jar、c3p0-.jar 到 $TOMCAT_HOME/common/lib 目录下
拷贝 perties 到 $TOMCAT_HOME/common/classes 目录下
在 Tomcat 6 下:
把 p6spy.jar、classes12.jar、c3p0-.jar 和 perties 都拷到 $TOMCAT_HOME/lib
您可能关注的文档
- 生产过程中般瑕疵英文辞汇.doc
- 生必看的部电影.doc
- 生态复习.doc
- 生态学公式.doc
- 生态学部分简答题.doc
- 生态文明是人类文明发展的新形态(分).doc
- 生态系统大极限.doc
- 生成几何结构.doc
- 生活中的振动同步训练.doc
- 生活经营管理十条。。.doc
- 文化产业发展新视角:2025年区域协同战略与资源整合模式探索报告.docx
- 2025年绿色建筑材料市场推广策略与政策支持下的绿色建材产品评价报告.docx
- 绿色金融与碳金融协同发展对环境友好型企业的融资效应.docx
- 2025年跨境电商办公用品电商供应链物流优化创新案例分析.docx
- 绿色金融与碳金融协同发展对环境保护的贡献研究.docx
- 工业互联网平台开发风险评估与2025年生态构建政策影响报告.docx
- 餐饮门店菜品研发与运营效率提升策略报告.docx
- 2025年跨境电商物流时效提升智能化变革报告.docx
- 2025年零售行业库存优化与数据分析报告.docx
- 智能控制第七章专家系统.ppt
文档评论(0)