2010-10-29 61 views
0

在我工作的公司,我们有一个基于Jboss/Apache/Hibernate和Ms Sql 2005 db的应用程序。查询加速策略

我们有一个加载一堆交易的页面。现在我们在加载页面时计时了这一点,并且它需要15到20秒才能加载文件,这是因为查询构建(不确定这些是由hibernate构建的)加入大量表格。 为了纠正这个问题,我们将一些左连接更改为内连接并将索引添加到表中。然而这并不能真正解决问题,它会变得更好,但并不显着。

有什么想法?

回答

0

您可以将只读数据库实例移至其自己的服务器,使用固态驱动器并调整索引。优化这个的另一种方法是运行一个查询来创建一个你可以用一个简单查询访问的表,而不是在运行时运行一堆查询。

0

你做了什么来确定要添加哪些索引?我一直对MSSQL Index Tuning Wizard非常幸运 - 您可以使用SQL Profiler在页面加载期间跟踪数据库活动,然后通知“查询调整向导”根据该活动建议新的索引和统计信息。它通常会提出一些可以产生巨大差异的指标。

高争用磁盘上的数据库?如果数据库位于自己的物理磁盘上,查询可能会更快。考虑到基础表的大小,也许数据库服务器的电源不足 - 它是否有足够的备用资源来处理文件加载?

0

查询返回多少条记录?

如果有很多记录,您可能需要进行某种自定义分页,并且只返回当前页面上的记录数(即50页的页面将仅返回记录1 - 50)