none
[VB2005 + Access ]如何減少Access資料庫的大小 RRS feed

  • 問題

  • 各位老師好

    今天我要問的是

    如何減少Access資料庫的大小??

    我撰寫的一個程式,他的後端我是用Access資料庫

    但是客戶嫌資料庫太大

    請問有什麼方法可以減少資料庫的大小嗎
    易耳易兒
    2009年10月28日 上午 02:25

解答

  • 這個功能只是將多餘空白空間刪除,並非是壓縮軟體那種壓縮。

    比如說你的資料庫曾經新增資料成長到 4x MB 後,又刪除資料到實際上資料庫只有 3x MB 後,因為資料庫只會成長不會縮小,所以裡面就有 10 mb 的空白空間,當你下次插入資料後,就會先使用這個空白空間,直到用完才會自動成長 10% (4x MB * 10% = 4 MB) 。

    你直接用壓縮軟體壓完,可能不到 1 mb 。

    資料庫著重的是快速存取查詢資料,不是檔案大小,所以資料庫檔案一般都很龐大,甚至你把 Access 檔案匯入到 SQL Server 後,實際檔案大小可能是 Access 的兩倍大。

    如果這樣嫌大的話,就要檢討資料庫每個欄位給的位元組是否過多,彈性跟大小是衝突的,比如說姓名欄位,考慮到山地人的長名,保留了 10 個字元,就是 20 bytes ,跟多數 3 個字元 6 個 bytes 就差了 14 bytes ,若是 10 萬筆,就差 1.4 mb。

    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 Allen_Yang 2009年10月28日 上午 09:47
    2009年10月28日 上午 09:18

所有回覆

  • HI, 看看這篇有沒有幫助:ACC2000: 重組及壓縮資料庫,以改善效能(http://support.microsoft.com/kb/209769)
    2009年10月28日 上午 04:11
  • Access 每次成長固定為 10% ,你若是測試資料庫轉提供,可能裡面會有些因為測試而產生的空白空間,那個重整壓縮就可以了,如果重整壓縮後還嫌大,需要檢討資料庫內各欄位的位元組數。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2009年10月28日 上午 05:00
  • 老師好

    請問我該怎麼去重整壓縮我的Access資料庫呢?

    謝謝
    易耳易兒
    2009年10月28日 上午 05:42
  • HI,

    您可以執行[工具 --> 資料庫公用程式 --> 壓縮及修復資料庫]
    2009年10月28日 上午 05:46
  • 老師好

    你說在Office Access裡面做嗎?

    我的是 Office 2007

    找不到壓縮資料庫的選項ㄝ

    謝謝老師
    易耳易兒
    2009年10月28日 上午 05:50
  • 畫面左上方有一個 Office的Logo (就是看起來像四個方形又像中國結)的那玩意
    點下去 -> 管理 -> 壓縮及修復資料庫
    學而不思則罔, 思而不學則殆.
    如果你一直都看不懂、不想學習看懂、抗拒看懂MSDN Library的話,那你最好放棄想要寫好程式這件事
    如果你自私地不肯回饋與分享,那別人為何要花時間回答你的問題?
    2009年10月28日 上午 05:54

  • 論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2009年10月28日 上午 08:55
  • 謝謝心冷老師

    壓縮成功了

    4xMB -> 3xMB

    這壓縮效能算好嗎?

    謝謝老師
    易耳易兒
    2009年10月28日 上午 08:56
  • 這個功能只是將多餘空白空間刪除,並非是壓縮軟體那種壓縮。

    比如說你的資料庫曾經新增資料成長到 4x MB 後,又刪除資料到實際上資料庫只有 3x MB 後,因為資料庫只會成長不會縮小,所以裡面就有 10 mb 的空白空間,當你下次插入資料後,就會先使用這個空白空間,直到用完才會自動成長 10% (4x MB * 10% = 4 MB) 。

    你直接用壓縮軟體壓完,可能不到 1 mb 。

    資料庫著重的是快速存取查詢資料,不是檔案大小,所以資料庫檔案一般都很龐大,甚至你把 Access 檔案匯入到 SQL Server 後,實際檔案大小可能是 Access 的兩倍大。

    如果這樣嫌大的話,就要檢討資料庫每個欄位給的位元組是否過多,彈性跟大小是衝突的,比如說姓名欄位,考慮到山地人的長名,保留了 10 個字元,就是 20 bytes ,跟多數 3 個字元 6 個 bytes 就差了 14 bytes ,若是 10 萬筆,就差 1.4 mb。

    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 Allen_Yang 2009年10月28日 上午 09:47
    2009年10月28日 上午 09:18
  • 瞭解了

    謝謝老師
    易耳易兒
    2009年10月28日 上午 09:47