如何使用大约26个临时表来加速查询

时间:2015-06-11 17:49:04

标签: sql-server

我有一个查询,它创建了26个单行临时表。然后它根据日期进行内部连接,将它们全部链接起来。每个都是一组3或4个聚合。它会创建一个110列的月末报告。

当我运行大部分查询来创建临时表时,我得到的时间大约为1-30秒,除了其中2个需要大约10-15分钟。这两个是聚合的聚合。

在我的替补席标记中,如果我一次跑1次并且需要最多次,整个过程大约需要40分钟。然而,当我同时运行它们时,它们至少需要55分钟。

最初这个查询是26个Sub查询,花了几个小时。我通过切换到临时表将它降低到55分钟,但我真的觉得我应该能够减少它。

其他信息:正在使用的主要2个表/视图是大约50MM记录,索引看起来相当不错。

伪代码:

Insert Avg, Sum, Count, Avg
into #temp1
Insert Avg, Sum, Count, Avg
into #tempN
.....n^26
Select * 
from #temp1 t1
join #tempN tN
on t1.MonEnd = tN.MonEnd
...N^26

0 个答案:

没有答案