我有一个查询在SQL Server中保持超时。查询中最大的表格只有几百行。基本上我试图将一堆表中的数据与tblNovaPosts中的novaPost字段进行匹配以创建报告。我应该如何更改此查询以使其运行速度更快?使用多个连接优化此查询
SELECT TOP (100) PERCENT tblNovaPosts.type, tblNovaPosts.novaPost,
ISNULL(SUM(tblAuditTrail.amount), 0) AS FUNDING,
ISNULL(SUM(tbl510.allot), 0) AS ALLOT,
ISNULL(SUM(tblStanfin.oblig), 0)
+ ISNULL(SUM(tblSof.obligationsCum), 0)
+ ISNULL(SUM(tblSpecAppt.obligations), 0)
+ ISNULL(SUM(tblJlens.obligationsCum), 0)
- ISNULL(SUM(viewReimbObs.reimbObs), 0) AS OBLIGATED,
ISNULL(SUM(tblSof.commitmentsNonCum), 0)
+ ISNULL(SUM(tblRmt.commitment),0)
+ ISNULL(SUM(tblReimb.commitmentsNonCum), 0)
- ISNULL(SUM(viewReimbObs.reimbObs), 0) AS DIRCOMMIT
FROM tblNovaPosts LEFT OUTER JOIN
tblAuditTrail ON tblNovaPosts.novaPost = tblAuditTrail.novaPost LEFT OUTER JOIN
tbl510 ON tblNovaPosts.novaPost = tbl510.novaPost LEFT OUTER JOIN
tblStanfin ON tblNovaPosts.novaPost = tblStanfin.novaPost LEFT OUTER JOIN
tblSof ON tblNovaPosts.novaPost = tblSof.novaPost LEFT OUTER JOIN
tblSpecAppt ON tblNovaPosts.novaPost = tblSpecAppt.novaPost LEFT OUTER JOIN
tblJlens ON tblNovaPosts.novaPost = tblJlens.novaPost LEFT OUTER JOIN
viewReimbObs ON tblNovaPosts.novaPost = viewReimbObs.novaPost1 LEFT OUTER JOIN
tblRmt on tblNovaPosts.novaPost = tblRmt.novaPost LEFT OUTER JOIN
tblReimb ON tblNovaPosts.novaPost = tblReimb.novaPost
GROUP BY tblNovaPosts.type, tblNovaPosts.novaPost
ORDER BY tblNovaPosts.type, tblNovaPosts.novaPost
'TOP(100)PERCENT'没有任何意义.. – Magnus
我在视图中看到它,当我想通过 –
@Conrad强制执行默认命令时 - [自SQL Server 2000以来, (http://blogs.msdn.com/b/queryoptteam/archive/2006/03/24/560396.aspx) –