2010-11-10 19 views
1

我有一個90MB的.csv提取物,我需要推到Access 2007數據庫導出到Access 2007年。.CSV的進口則通過DB SSIS造成了巨大的膨脹

作爲測試 - 如果我不使用默認設置文件的直接導入到一個新表,我結束了134MB的DB。

什麼,我需要做的 - 該.csv提取物含有一對夫婦,我需要將他們推向到Access數據庫之前處理列。爲了實現這一點,我使用了SSIS(從SQL Server 2008安裝)並使用一對派生列來包含處理後的列,然後通過一個現有的Access表(它在流程開始時沒有行) ADO.NET連接使用以下連接字符串「Data Source = C:\ Import \ InTheGarden.accdb; Provider = Microsoft.ACE.OLEDB.12.0;」。 (從SSIS連接在連接管理器的連接字符串)

當我處理使用SSIS我最終1.16GB的一個文件,該文件壓實時歸結爲一個大小約爲180MB的數據!!!

兩件事情: -

  • 首先,我不明白是什麼原因造成的膨脹,以及如何我可能會解決它。我讀過,我不知道今天有多少文章「訪問2007膨脹」,似乎無法找到任何exlpains究竟是怎麼回事:(
  • 其次,雖然我可以導入.csv文件上面我有另一個154MB的文本文件需要導入,並且給定較小的文件導致數據庫在導入時膨脹到1.16GB我並沒有抱着太大的希望,這個更大的文件沒有超過2GB的限制!

我通常會使用SQL Server作爲後端但也有我無法控制的原因,爲什麼這不能發生:(

樂意爲您提供進一步的信息,訪問是不是我用的負載,從而有可能b我錯過的關鍵信息! :(

THX!

+0

標題應該READH「。CSV進口,然後通過SSI出口到Access 2007數據庫S造成巨大的膨脹「 – inthegarden 2010-11-10 16:56:01

+0

爲什麼不呢? – SLaks 2010-11-10 16:58:29

+1

這可能是有趣的:http://support.microsoft.com/kb/q239527/ – Fionnuala 2010-11-10 20:07:52

回答

1

爲什麼不使用臨時表在Access做進口,加工數據,然後插入到真正的表中?你會使用一個單獨的臨時數據庫,以避免導入兩次。我已經做了幾十個導入到Access,這一直是我做的方式當我需要的最後追加之前處理數據。

+0

嗨大衛thx的迴應,已開始沿着今天早晨的道路,但在同一個數據庫中的表(即沒有SSIS,只是訪問進口)只是爲了讓我去。現在已經將該「分段」表格移動到獨立的數據庫中並鏈接到原始數據庫。對我應該如何管理這個暫存數據庫的確切機制感興趣,會對任何見解感激不盡?謝謝! – inthegarden 2010-11-11 07:47:21

+0

這是一個臨時數據庫。它是一次性的。假設你正在重複這樣做,你應該有一個空的模板數據庫,並將其複製用於導入。否則,這並不重要。 – 2010-11-11 20:35:05

0

嘗試打破CSV分成幾個較小的文件,並導入各一個運行Access'壓縮數據庫命令。