我正在尝试加载事实表。我要加入 7 张不同的桌子。当我从该连接中选择 count(1) 时,执行需要 25 分钟并返回 988368728 条记录。最重要的是,我使用 group by 并再次加入同一组表。
例子:
Select set1.minVal, t2b, t2.Key1, T3.Key2... t7.g From t1, t2,...,t7
left outer join
(
Select
Min(t1a) minVal, Max(t2b) maxVal, t2.Key1, T3.Key2 From t1, t2,...,t7
group by t2.Key1, K3.Key2(Key Columns)
)set1
on t2.Key1 = set1.Key1
and t3.Key2 = set1.Key2
and t2b = maxVal
当我执行上述查询时,由于 TEMPDB 有足够的内存,它在 1 小时后失败。我需要在 SSSI 包中使用此查询来加载事实表。我可以选择编写查询以通过不同的方式实现这一目标。其中之一是我可以使用 SP 来分治结果,我可以使用 SSIS 包来分治,但我不知道如何打破它。
我需要帮助来解决这个时间杀手。