2016-09-15 100 views
0

每個月我都會對客戶數據庫進行一些分析。我的前任將爲每個國家在Eloqua(我們的客戶關係管理)中創建一個細分市場,然後花費大約10(繁瑣,緩慢)的時間提醒他們。當我接手時,我知道我無法在Excel中完成(我們擁有超過1000萬的客戶),因此我使用了Access。加載數據時,Access接近2GB限制

這個過程工作得很好。我們現在達到了1200萬條記錄,並且它仍然很強勁。但是,在進行任何工作之前導入客戶主列表時,數據庫正在膨脹。本月它達到1.3 GB。

現在,我不會導入所有列 - 只有3.如果我嘗試對鏈接表執行操作,Access會凍結。如何在導入過程中減少數據庫的大小?我的源文件僅與最少的列相關聯,我導入數據後,我的下一個步驟必須是:

  • 操縱數據以獲得計數,而不是各行
  • 商店被操縱的數據(只有幾百KB)
  • 清空我導入的表
  • 壓縮並修復

這不會是一個問題,但我必須做的所有的這8倍(8個段,每一個示出了數據庫的不同部分),和2GB的限制是迫在眉睫在接下來的地平線上。

另一個問題可能是:我如何模擬/重新創建MySQL/MariaDB /其他東西免費的「鏈接表」功能?

+0

壓縮後數據庫有多大? – dbmitch

+0

您可以將數據拆分到不同的訪問數據庫中,然後在任何需要一次從多個數據中獲取數據的位置組合工會。當然這有缺點,任何使用Access作爲後端可能最終導致這種類型的事情。那裏有很多更好的後端選擇。 –

+0

我可以建議2種解決方法 - 一種是在進行新導入之前刪除先前導入的表格和壓縮文件。這可能會給你足夠的空間。其次是使用vba腳本一次處理輸入的一行,只需導入所需的列。我有一個這樣的應用程序,我可以分享,如果你想要更多的信息。 (我必須這樣做,因爲我的輸入文件超過2G,我無法導入或以任何其他方式附加它。) –

回答

3

對於如此大數量的記錄MS Access與2 GB的限制是不好的解決方案作爲數據存儲。我將使用MySQL作爲後端:

  • 在MySQL創建表和使用MySQL的原生導入功能它
  • 導入CSV數據直接鏈接到MS訪問MySQL表。當然,Access可以用於數據導入,但它會工作得更慢。
  • 使用Access作爲常規表使用此鏈接的MySQL表進行數據分析。
+0

我第二個想法! –

1

您可以將CSV導入到(新/空)單獨的Access數據庫文件。

然後,在您當前的應用程序中,鏈接該文件中的表。訪問不會在操作過程中凍結,因爲它會直接鏈接文本文件。