Sql 查询加速策略

Sql 查询加速策略,sql,Sql,在我工作的公司,我们有一个基于Jboss/Apache/Hibernate和Ms Sql 2005 db的应用程序 我们有一个页面可以加载一系列事务。现在,我们在加载页面时对此进行了计时,加载文件需要15-20秒,这是因为生成的查询(不确定这些查询是否由hibernate生成)连接了大量表。 为了纠正这个问题,我们将一些左连接更改为内部连接,并向表中添加索引。然而,这并不能真正解决问题,它会变得更好,但并不显著 有什么想法吗?您是如何决定要添加哪些索引的?我在MSSQL索引优化向导方面一直很幸运

在我工作的公司,我们有一个基于Jboss/Apache/Hibernate和Ms Sql 2005 db的应用程序

我们有一个页面可以加载一系列事务。现在,我们在加载页面时对此进行了计时,加载文件需要15-20秒,这是因为生成的查询(不确定这些查询是否由hibernate生成)连接了大量表。 为了纠正这个问题,我们将一些左连接更改为内部连接,并向表中添加索引。然而,这并不能真正解决问题,它会变得更好,但并不显著


有什么想法吗?

您是如何决定要添加哪些索引的?我在MSSQL索引优化向导方面一直很幸运-您可以使用SQL Profiler在页面加载期间跟踪数据库活动,然后告诉查询优化向导根据该活动建议新的索引和统计信息。它通常会提出一些能够产生巨大差异的指数


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

查询返回多少条记录


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

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