Oracle 使用tomcat运行web项目时出现性能问题

Oracle 使用tomcat运行web项目时出现性能问题,oracle,tomcat,virtual-machine,Oracle,Tomcat,Virtual Machine,我已经在我的笔记本电脑上构建了一个环境,其中我在主操作系统(Windows 7)上构建了tomcat服务器,在虚拟机上构建了Oracle服务器,在Linux操作系统上使用VMWare(Redhat 5) 现在,当我运行我的项目时,tomcat不断加载页面并显示“等待localhost…”加载动态页面(包含oracle数据)需要2-3分钟,但是静态页面加载速度非常快。我认为连接VM机器(数据库服务器)需要时间 DB连接代码 Class.forName("oracle.jdbc.driver.Ora

我已经在我的笔记本电脑上构建了一个环境,其中我在主操作系统(Windows 7)上构建了tomcat服务器,在虚拟机上构建了Oracle服务器,在Linux操作系统上使用VMWare(Redhat 5)

现在,当我运行我的项目时,tomcat不断加载页面并显示“等待localhost…”加载动态页面(包含oracle数据)需要2-3分钟,但是静态页面加载速度非常快。我认为连接VM机器(数据库服务器)需要时间

DB连接代码

Class.forName("oracle.jdbc.driver.OracleDriver");
    String Connecting_URL = Connecting_String + "@" + DB_IP_Addr + ":" + DB_Port + ":" + Oracle_Sid;
    conn = DriverManager.getConnection(Connecting_URL,DB_UserName,DB_Password);

如何解决这个问题?

解决性能问题的关键是停止猜测并开始测量。 测量值越多,就越接近解决方案

我要记录的第一件事是动态页面加载的开始时间戳和结束时间戳。 我还将测量运行查询所需的时间,以及从连接池获得连接所需的时间(您正在使用连接池,对吗?) 我会观看日志的实时更新(使用tail-f),看看浏览器发送请求的时间和动态页面开始处理的时间之间是否有很大的时差。我还将在查询运行时观察Oracle服务器上CPU和RAM的使用情况

最后,如果查询时间是罪魁祸首,我将注销查询并在Tomcat环境之外运行它,并尝试通过重新构造查询、添加索引、获取更少的数据来优化它。Oracle在这里可以起到很大的帮助,您可以生成查询计划并监视大型表的完整表扫描和其他可能昂贵的操作


只有通过测量,你才能了解问题的根源。在极少数情况下,这将是非常不寻常的(我曾经因为DNS配置错误而遇到过这种类型的问题),但您必须逐个排除所有明显的可能性(我的查询非常糟糕,我没有足够的CPU/RAM用于数据库,我没有使用连接池等等)

从oracle加载动态页面数据时,执行的代码块是什么?您是否尝试过直接向数据库运行查询?感谢Alfabravo的回复..我进行了第一级分析..实际上SQL查询不是罪魁祸首,因为我创建了一个页面,其中没有执行任何SQL查询..我只使用JDBC驱动程序(添加在主查询中)创建数据库连接。这也花费了太多的时间。所以,我很确定问题出在连接b/w DB服务器和web服务器上。非常好的建议。在某些情况下,在资源可用的情况下,即使在您遇到问题之前捕获数据也是值得的,因为当您这样做时,您有证据表明“它曾经起作用”,然后您可以质疑“发生了什么变化?”祝大家好运!谢谢托尼的建议。。我做了第一级分析。实际上SQL查询不是罪魁祸首,因为我创建了一个页面,其中没有执行任何SQL查询。我只是使用JDBC驱动程序(添加在主查询中)创建数据库连接。这也花费了太多的时间。所以,我很确定问题在于连接b/w DB服务器和web服务器。我在执行时检查了资源是否也可用。(我的笔记本电脑上有8GB内存,其中我为DB服务器分配了5GB内存)。现在,我不知道如何解决这个问题。