2012-06-29 47 views
4

我開發了一個windows應用程序,後端數據庫是Access 2007.我聽說Access 2007的最大限制是2GB。如何增加MS Access 2007數據庫大小?

現在我的問題是,有沒有辦法增加超出限制的尺寸?如何爲應用程序創建多個數據庫以增加大小和性能?

+6

SQLServer Express 2008有10GB限制。下拉訪問並切換到更好的數據庫。 –

+0

+ SQLServer Express是免費的 – Kane

+0

如果我使用SQLServer Express 2008,客戶端的最低要求是什麼? –

回答

7

可以劃分您的數據到一個或多個額外的數據庫文件,然後創建一個從主應用程序數據庫鏈接到衛星表。

儘管該策略可能允許您使用存儲在Access中的超過2 GB的數據,但它並不是一個好選擇。一個缺陷是你不能在不同的db文件中的表之間強制引用完整性;僅憑這一事實就可以將許多應用程序劃分爲非啓動者。

另一個問題是臨時工作空間。當數據庫引擎需要工作空間的磁盤文件時,它使用臨時文件。該臨時文件也被限制爲最大2 GB。因此,如果您在每個1.5 GB的4個db文件之間分佈有6 GB的數據,並且需要處理超過2 GB的數據,則可能會收到錯誤消息,指出磁盤空間不足。這並不意味着磁盤已滿;這意味着所需的臨時工作空間大於2 GB。

在過去實際完成了一次分區之後,我不想再這樣做了。要求訪問管理這麼多的數據是不合理的;我不得不花費太多的時間等待它去做我所要求的任何事情。將這項工作轉移到更強大的數據庫系統上會好得多。因此,這不僅是存儲容量的問題,而且存儲數據庫可以處理大型數據集的能力。您的Access應用程序可以成爲客戶端 - 服務器數據庫的客戶端。

我也認爲你應該仔細檢查你正在存儲的內容。例如,一些人喜歡存儲圖像。我不。相反,我將路徑存儲到圖像文件。其他文件類型也一樣。也許你可能會發現你可以在不存儲BLOB的情況下生活,你可以輕鬆地將你的數據庫大小減少到2 GB以下,並繼續使用Access作爲存儲。

+0

謝謝hans ..現在我得到訪問數據庫的概述.. –

1

最大數據庫大小爲2GB減去系統對象所需的空間,但您可以嘗試一種解決方法:通過拆分數據庫。欲瞭解更多信息,請參閱:

Office.com - Split an Access database

MS KB304932 - How to manually split Access database

+0

此外,請務必定期壓縮數據庫以防止堆積不必要的垃圾。我知道這並不回答你如何增加訪問數據庫的大小限制的問題,但它會幫助你避免達到這個限制。如果您想將其設置爲緊湊型,則可以在數據庫關閉時運行此代碼。 http://vbadud.blogspot.com/2007/09/reducing-size-of-microsoft-access.html – Scotch

1

當我的數據庫在導入表中的外部數據時達到2GB時,我遇到了同樣的問題。我只是禁用的設置

轉到緩存文件>選項>當前數據庫

在高速緩存Web服務和Sharepoint表

選中「使用緩存格式與微軟兼容Access 2010及更高版本」

檢查 '清除緩存上關閉'

檢查 '從不緩存'

1

我有相同的p這個數據庫在17年的時間裏投入了大量的資金,並且在2GB的限制之內。它已經被拆分了,所以在那裏沒有任何東西可以完成。最後,我通過擺弄最大的桌子找到了問題所在的JPG圖像,其中有一個非常大的數字 - 例如,在訪問表中使用員工或工作人員的嵌入式圖像很流行。我現在正在執行的解決方案進展順利。無論如何,所有的picures都在一個文件中,所以設計一個新的表單,使用超鏈接通過一些代碼鏈接到圖片。刪除後端的嵌入式圖像。我已經在數據庫副本上進行了模擬。它將大小從1.6 GB降低到不到300 MB - 因此,如果使用SQL,您可以將其視爲解決方案