我想加載一個事實表。我加入了7個不同的表格。當我從該連接中選擇計數(1)時,需要25分鐘才能執行並返回988368728條記錄。最重要的是,我一次又一次地使用同一組表。使用SSIS選擇大量的記錄
實施例:
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
當我執行它在1小時後失敗上述查詢由於在足夠的存儲器用於TEMPDB。我需要在SSSI包中使用這個查詢來加載一個事實表。我可以選擇通過不同的方式編寫查詢來實現這一點。其中一個是我可以使用SP來分割和征服結果,我可以使用SSIS Package來分割和征服,但是,我不知道如何分解它。
我需要幫助來整理這個時間殺手。
我確定我在團隊之前已經有98密爾,在團隊之後減少到35密爾。我想要一種分解和征服查詢的方法。無論是在存儲過程還是SSIS包。 – HRK 2013-05-10 18:02:03
我的觀點是你是否想要進行笛卡爾連接,或者在表格之間是否存在用於減少#或記錄的關鍵列?另外,您只使用7個表格中的4個的值 – 2013-05-10 20:32:12
換句話說......您是怎麼想出這個查詢的,因爲它看起來不正確 - 它創建了一個笛卡爾連接,它總是會導致一個TEMPDB如果您使用大型表格,則會出錯。您需要分析您的查詢並提出正確的查詢。你的幾乎肯定是不正確的。 – 2013-05-11 07:47:57