在我正在开发的公司,我们有一个基于Sql 2005 db的Jboss / Apache / Hibernate的应用程序构建。
我们有一个加载大量事务的页面。现在我们在加载页面时计时这个,加载文件大约需要15-20秒,这是因为查询构建(不确定这些是否由hibernate构建)加入了大量的表。 为了解决这个问题,我们将一些左连接更改为内连接并向表中添加索引。然而,这并没有真正解决问题,它变得更好,但并不显着。
任何想法?
答案 0 :(得分:0)
您如何确定要添加的索引?我一直很幸运使用MSSQL索引优化向导 - 您可以使用SQL事件探查器在页面加载期间跟踪数据库活动,然后告诉查询调优向导根据该活动建议新索引和统计信息。它通常会建议一些可以产生巨大差异的索引。
数据库是否位于高争用磁盘上?如果数据库位于自己的物理磁盘上,查询可能会更快。考虑到底层表的大小,可能数据库服务器功能不足 - 它是否有足够的备用资源来处理文件加载?
答案 1 :(得分:0)
查询返回了多少条记录?
如果有很多记录,您可能想要进行某种自定义分页,只返回当前页面上的记录数(即50页只返回记录1 - 50)
答案 2 :(得分:0)
您可以将只读数据库实例移动到其自己的服务器,使用固态驱动器并调整索引。另一种优化方法是运行查询来创建一个可以通过简单查询访问的表,而不是在运行时运行一堆查询。