在我工作的公司,我们有一个基于Jboss/Apache/Hibernate和MSSQL2005db的应用程序。
我们有一个页面,它加载了一堆事务。现在我们在页面加载期间对此进行了计时,加载文件大约需要15-20秒,这是因为查询构建(不确定这些查询是否由hibernate构建)连接了大量的表。为了纠正这个问题,我们将一些左连接更改为内连接,并向表中添加索引。然而,这并没有真正解决问题,它会变得更好,但不是很明显。
有什么想法吗?
发布于 2010-10-29 13:09:06
您可以将只读数据库实例移动到自己的服务器上,使用固态驱动器,并调整索引。另一种优化方法是运行一个查询来创建一个可以通过一个简单的查询访问的表,而不是在运行时运行一组查询。
发布于 2010-10-29 13:02:12
您做了什么来确定要添加哪些索引?我一直很幸运地使用MSSQL索引优化向导-您可以使用SQL事件探查器跟踪页面加载期间的数据库活动,然后告诉查询优化向导根据该活动建议新的索引和统计信息。它通常会建议一些索引,这些索引可以产生巨大的差异。
数据库是否位于高争用磁盘上?如果数据库在它们自己的物理磁盘上,查询速度可能会更快。考虑到底层表的大小,数据库服务器可能动力不足-它是否有足够的空闲资源来处理文件加载?
发布于 2010-10-29 13:06:16
查询返回了多少条记录?
如果有许多记录,您可能想要执行某种自定义分页,并且只返回当前页面上的记录数(即第50页将仅返回1-50条记录)
https://stackoverflow.com/questions/4049080
复制相似问题