2012-11-09 107 views
1

我需要查詢數據庫並保存超過六百萬條記錄,以便以後使用Excel VBA進行分析和報告。什麼是最好的方法來做到這一點?我需要能夠稍後訪問數據,分析數據並生成有關分析數據的報告(我應該能夠在我的系統中本地訪問整個數據,並且應該能夠快速處理它)MS訪問保存數據的好處如果記錄數量達到數百萬?我沒有很多使用oracle和VBA的經驗。如果使用excel VBA,這是一個好方法嗎?欣賞它,如果任何人都可以提供一些可能幫助我完成任務的鏈接。如何使用VBA從數據庫中保存數百萬條記錄?

注意:由於我無法控制的原因,我沒有選擇使用其他語言。我在Java中相當優秀,但不能使用它。

+1

我建議你看看SQL Server Express。一百萬不多說,一個領域(專欄)的一百萬是一回事,一百萬有50個領域是另一回事。您應該能夠直接連接到Excel。 – Fionnuala

+0

六百多萬,我不會推薦excel vba。我認爲極限是excel中的百萬記錄 –

+1

試試這個:http://www.dba-oracle.com/art_ext_tabs_spreadsheet.htm。或者,你可以嘗試如下所示:http://www.codeproject.com/Articles/25881/Bulk-Insert-using-ODP-NET - 從c#移植到vba不應該太痛苦 - 可悲的是我不會沒有oracle數據庫來測試。 – JohnLBevan

回答

2

如果您想要在Excel中處理超過100萬行的數據,您應該查看PowerPivot,它是Excel 2010(它內置於Excel 2013中)的加載項。除了每行計算字段外,它還允許有1億行數據,儘管這些計算可能比其他人推薦的SQL後端/ Excel前端解決方案要慢。

+0

2013有內置功率支點AFAIK。 – Fionnuala

+0

PowerPivot的+1。 – Stepan1010

+0

@Remou - 你說得對,我在我的回答中已經提到過。 :-)我應該指出,雖然它是內置的,但它必須在功能區上的PowerPivot選項卡出現之前激活。 –

2

我需要查詢一個數據庫並保存超過600萬條記錄,以便以後使用excel VBA進行分析和報告。

我希望分析將在這些記錄的SUBSET上完成,因爲即使使用Excel 2010,您也只能限制爲1,048,576行。

我需要以後能夠訪問數據,分析並生成報告的分析數據(我應該能夠本地訪問在我的系統整體的數據,應該能夠處理它快)有多好如果記錄數量達到數百萬,MS是否可以保存數據?

它會這樣做。我已經完成了它的工作(包括很多年前,通過直接連接到Oracle數據庫),儘管小包中的小丑是有多少列作爲提及的評論之一。使用海量數據集時,在Access中2GB文件大小限制開始變得非常容易。

「快」是另一回事。由於(其中包括)我在大數據量工作時認爲速度慢得無法接受,因此我基本上停止了與Access的合作。無論名字「JET」來自哪裏[1],它都確定,因爲哈迪斯並不是它的速度的隱喻。

Access的一個優點是,它可以讓你非常容易地(如果不是很快)生成Excel風格的分析報告(包括一些圖形報告),並且還允許您在創建它們時使用VBA。另一方面,SQL Server是我的數據計算器,它的速度要快得多,但幾乎沒有任何前端。可能理想的情況是(也可以提及)使用Access或Excel來執行前端操作,並且SQL Server執行繁重的任務,除非在本地保存數據,否則您可以在Oracle中執行該操作,那麼只需讓Excel/VBA就您直接從Oracle提取的彙總查詢創建報告。

如果報告運行到數百萬行但實際上沒有運行那麼長的報告將會是有價值的,我會迴避使用Excel。這是一個數據轉儲,而不是一個報告。


[1]是的,是的,我知道聯發科技。

+1

它已經是ACE,而不是2年以上的Jet。 – Fionnuala

+0

更不用說被稱爲「Access數據庫引擎」的時候,它被描述爲「Office的特定版本」,等待它......「Jet」。 (http://office.microsoft.com/en-us/access-help/introduction-to-the-access-2007-file-format-HA010067831.aspx)但總體上最好的比喻「任何其他玫瑰「肯特法官在John W. Bradshaw和Unity Marine Corporation Inc提供了一個名字」問題:「但是在一天結束時,即使你把一件印花布裙子稱作佛羅倫薩,一頭豬仍然是一頭豬。」或者至少它已經成爲7個數字的行數...... –

相關問題