我有两个测试环境。我的应用程序在第二秒表现得非常糟糕。我怀疑这是因为第一个系统使用的数据库运行在更好的硬件上(更多的CPU,更快的连接)。我想以某种方式验证我的主张。有什么工具可以帮助我吗?如果它有用,我使用的是Oracle 11g,我的应用程序正在使用Hibernate连接到数据库。
请注意,我对分析我的架构不感兴趣。我想比较两台不同机器上相同数据库(意味着架构+数据)的速度。
如果您感兴趣,为什么我怀疑数据库是问题:我在这两个环境的测试期间分析了我的应用程序。在第二个测试环境中,负责连接数据库的方法(即org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery())正在使用更多的CPU时间。
答案 0 :(得分:2)
回答这个问题:我相信您会使用JMeter来分析这两种环境,并从您运行的测试中获取全面的数据。 VisualVM也会有所帮助,但这取决于您需要的数据类型,以及您需要如何呈现(或分析)它。
但至于一般问题,两个数据库上的数据完全是否相同?因为如果不是这种情况,一些可能性是开放的 - 您的事务可能依赖于被另一个进程锁定的数据(因此,您需要查看您的事务以及它们使用的事务隔离)。