2012-01-05 96 views
1

我正在編程一個Access數據庫,但我意識到它的大小在使用時會急劇增加,並且會增長到數百MB。壓縮後的大小回到了5MB。通常會導致這種規模的增加以及我如何避免它?如何避免Access數據庫膨脹?

回答

1

大量的添加和刪除記錄是導致數據庫膨脹的原因之一。如果這是你的開發數據庫,​​那麼當你重複編譯和保存你的vba項目時,數據庫膨脹是不可避免的;在最終用戶數據庫中的膨脹可能會少得多。

1

在Access數據庫中做任何工作都會導致文件的大小增加。當早晨進程運行時,我有幾個數據庫會膨脹到幾乎2GB的大小。該過程插入,更新和刪除數據。

使用MS Access時很重要的一件事就是使用緊湊和修復。這會縮小數據庫的大小。

我不會擔心數據庫會增長到幾百MB,對於Access來說仍然很小。

1

如果你真的從5MB到數百MB,可以壓縮回5MB,那麼正如其他人提到的,你正在插入和刪除大量記錄。這通常是因爲您需要創建臨時表。

大多數時候臨時表並不是技術上需要的,可以通過查詢查詢或使用動態SQL來刪除它們。如果你不能這樣做,那麼它可能值得創建一個單獨的臨時數據庫,你鏈接到。

重要的是要注意,每個用戶都有自己的臨時數據庫副本,並且會在會話的開始或結束時被銷燬。

1

您也可以關閉行鎖定。我有一個大小約5米的進程和文件。 當你運行一個簡單的更新,它膨脹到125兆。如果關閉行鎖定,則文件根本不會隨着更新而增長。 所以你想禁用行鎖定 - 這將大大減少腹脹。要取消對是這個: 文件 - >選項 - >客戶端設置,然後取消

[X]通過使用記錄級鎖定

enter image description here

訪問打開數據庫沒有真正的行鎖定,但確實有所謂的數據庫頁面鎖定。因此,以一種迂迴的方式,如果您打開行鎖定,那麼Access只會將所有記錄展開爲一個數據庫頁面的大小 - 結果是大量的膨脹。嘗試禁用上述選項。 (您必須退出+重新啓動Access才能使此設置更改生效)。