我有一個巨大的數據集在SQL Server(約32萬行),這是考慮到實現和源代碼如下返回巨大的數據集(3200萬)加載到表:需要使用SSIS
SELECT Idenitifier = ISNULL(mle.MIdeer, mle.Ider) + em.MemberId,
EffectiveDate = ISNULL(em.EffectiveDate,
(SELECT TOP 1 EffectiveDate
FROM c
WHERE SourceType = em.SourceType
AND GroupNumber = em.GroupNumber
AND ISNULL(GroupDivision, '') =
ISNULL(em.GroupDivision, '')))
FROM a em
JOIN b mle
ON mle.Identifier = em.GroupNumber + ISNULL('-' + em.GroupDivision, '')
-- Filter invalid legal entities
AND ISNULL(mle.Filter, 0) = 0
--- Gets a resultset of 531798 rows
CROSS JOIN -- this returns 63 rows , so
-- I am presuming 531798*63 rows here.
(SELECT *
FROM map
WHERE domaintype = 'MC')b;
我需要使用SSIS將此數據集加載到表中。在1600萬行之後,當我給出select * from <<view>>
時,我得到了sql server中的內存異常的system.out。如何使用SSIS在表格中加載此數據集,避免此異常。
還有哪些其他更好的方法可以有效地執行此查詢,因爲它需要超過30分鐘才能運行?
的內存溢出異常,是,正在從SSMS報道,當你只是運行查詢? – billinkc
以上查詢是否在SSIS中用作數據源?另外,爲什麼你需要使用SSIS? –
鑑於你的錯誤信息來自SSMS而不是SSIS,我認爲你有一個沒有問題,儘管你upvotes。儘管該團隊確實對性能進行了調整,但SSIS團隊能夠在6年之久的硬件上在30分鐘內加載[1TB](http://technet.microsoft.com/zh-cn/library/dd537533(v = sql.100 )的.aspx)。 30M行不算什麼。 – billinkc