在網(wǎng)頁(yè)上進(jìn)行access數(shù)據(jù)庫(kù)壓縮的方法
多年前給客戶(hù)做的數(shù)據(jù)庫(kù),用得是 access,已經(jīng)兩年,長(zhǎng)得非常大,有 1G 這么大。隨著您不斷添加、更新數(shù)據(jù)以及更改數(shù)據(jù)庫(kù)設(shè)計(jì),數(shù)據(jù)庫(kù)文件會(huì)變得越來(lái)越大。導(dǎo)致增大的因素不僅包括新數(shù)據(jù),隨著數(shù)據(jù)庫(kù)文件不斷被遺留的臨時(shí)對(duì)象和已刪除對(duì)象所填充,其性能也會(huì)逐漸降低。其癥狀包括:對(duì)象可能打開(kāi)得更慢,查詢(xún)可能比正常情況下運(yùn)行的時(shí)間更長(zhǎng),各種典型操作通常似乎也需要使用更長(zhǎng)時(shí)間。
所以對(duì)access數(shù)據(jù)庫(kù)進(jìn)行壓縮也是勢(shì)在必行。
實(shí)在是會(huì)擔(dān)心,如果不小心壞了,那可是救都救不回來(lái)。還好,備份一個(gè) access 的數(shù)據(jù)庫(kù)非常簡(jiǎn)單,就把那個(gè)檔案復(fù)制一份,就解決了。甚至,還可以寫(xiě)一個(gè) aspx 網(wǎng)頁(yè),來(lái)執(zhí)行這個(gè)動(dòng)作,讓我在任何地方,只要有網(wǎng)絡(luò),就可以用網(wǎng)頁(yè)來(lái)做備份,就算我用 iPad,iPhone,Android手機(jī)都可以。雖然是小題大作,一年不過(guò)做個(gè)兩、三次的事,但是,若能夠不讓客戶(hù)擔(dān)心的情況下,做完這些保險(xiǎn)的事,也會(huì)有讓他們信任的感受。就算不是計(jì)算機(jī)自動(dòng)化地來(lái)做,至少也是我自動(dòng)地做,也算是自動(dòng)化了?。?br />但是,只有備份,仍然不夠,備份只解決了失效復(fù)原的第一步。接下來(lái)面臨的是舊數(shù)據(jù)越來(lái)越多,如果不刪除,檔案越來(lái)越大,查詢(xún)的時(shí)間越來(lái)越長(zhǎng),真的是無(wú)謂的浪費(fèi)時(shí)間。所以,接下來(lái)完成了刪除舊數(shù)據(jù)的功能。但是,這又產(chǎn)生一個(gè)不滿(mǎn)足。雖然,數(shù)據(jù)刪了,查詢(xún)速度又回復(fù)以往的快速,但是,數(shù)據(jù)文件的大小,仍然維持一樣。著實(shí)想想真是不開(kāi)心。
使用 office access,可以把 mdb 打開(kāi),然后在「主功能(左上的窗口)」->「管理」->「壓縮及修復(fù)數(shù)據(jù)庫(kù)」這個(gè)功能,把數(shù)據(jù)庫(kù)壓縮。

這么做,就需要人工來(lái)做。并且要準(zhǔn)備一臺(tái)裝有 MS access 的計(jì)算機(jī)才行。
當(dāng)然這工作,用指令也行,但還是要在裝有 MS access 的計(jì)算機(jī)執(zhí)行指令,然后用工作排程器執(zhí)行(參考)。
C:\Program Files (x86)\Microsoft Office\Office12\MSACCESS.EXE c:\Northwind.mdb /compact
這種若要想用網(wǎng)頁(yè)執(zhí)行,則會(huì)因?yàn)槟撤N限制而無(wú)法執(zhí)行。猜測(cè)主要是因?yàn)?MSACCESS.exe 是桌面程序。執(zhí)行后就卡住,沒(méi)有把工作做完。這應(yīng)該只是設(shè)定的問(wèn)題,因?yàn)樵陂_(kāi)發(fā)環(huán)境是可以正常使用。但是在 IIS 的環(huán)境,就是卡住。有人提醒 service 程序也許不能與桌面互動(dòng)而導(dǎo)致問(wèn)題(參考)。我試過(guò)這方法也是失敗。我們以前嘗試過(guò),如果是 console 程序,是可以的執(zhí)行成功的。
為了堅(jiān)持要用網(wǎng)頁(yè)執(zhí)行,尋找許久,在微軟的開(kāi)發(fā)環(huán)境里,都會(huì)安裝一個(gè) dao。它只是一個(gè) dll。只要把 dao.dll 復(fù)制一份在 bin 里面,然后引用它。只要用兩行就搞定了。
dao.DBEngine dbe = new DBEngine();
dbe.CompactDatabase(target_uncompact, target_compact, null, null, null);
相關(guān)文章

網(wǎng)絡(luò)工程師必備的6款配置文件編輯神器:替代Notepad++!
本期文章介紹了六種網(wǎng)工必備工具,這些工具是網(wǎng)絡(luò)工程師日常工作中必不可少的,也是那些立志成為網(wǎng)絡(luò)工程師的人應(yīng)該熟悉的2026-04-13
首個(gè)版本v1.111已上線(xiàn)! VS Code開(kāi)啟周更狂飆模式
026年3月10日,微軟宣布將Visual Studio Code(VS Code)更新節(jié)奏從月更提速至周更,并發(fā)布首個(gè)周更版本v1.1112026-03-11
AI直接調(diào)試瀏覽器! VS Code重大更新發(fā)布
還在手動(dòng)打開(kāi)瀏覽器、點(diǎn)擊按鈕、檢查控制臺(tái)報(bào)錯(cuò)?太累了!現(xiàn)在,最新的VS Code 1.110中AI可以直接調(diào)試瀏覽器2026-03-10
vc 6.0代碼是正確編譯無(wú)法運(yùn)行怎么解決?
今天帶大家來(lái)共同學(xué)習(xí)VC++6.0無(wú)法正常運(yùn)行怎么辦?下面就是詳細(xì)完整的操作步驟,快跟小編一起來(lái)學(xué)習(xí)一下2026-02-27
vscode調(diào)試c代碼始終找不到exe可執(zhí)行文件的詳細(xì)及解決辦法
在 VS Code 中調(diào)試 C++ 項(xiàng)目時(shí),常見(jiàn)報(bào)錯(cuò):“無(wú)法啟動(dòng)調(diào)試會(huì)話(huà):找不到可執(zhí)行文件”,這個(gè)問(wèn)題問(wèn)題通常是由于環(huán)境配置不當(dāng)、缺少編譯步驟、路徑設(shè)置錯(cuò)誤、或是launch.json2026-02-27
vscode入門(mén)! 小白都能看懂的VS Code保姆級(jí)級(jí)使用教程
相對(duì)于其它前端工具來(lái)說(shuō),VSCode顯得更加的流暢,今天就將我的學(xué)習(xí)經(jīng)歷和大家分享一下,希望可以幫助到有需要的人2026-02-27
2026年真正值得裝、用得上、不雞肋的 VSCode 插件,其實(shí)沒(méi)那么多——挑10個(gè)“神級(jí)”不難,但得是每天打開(kāi)就用、關(guān)掉就難受的那種2026-02-10
VS Code 和 VSCodium怎么選? vscode 和 vscodium之間的區(qū)別
咱們今天就來(lái)聊聊 Visual Studio Code (VS Code) 和 VSCodium的相似與區(qū)別,詳細(xì)請(qǐng)看下文介紹2026-01-10
如何啟用.NET Framework3.5? 一鍵安裝net3.5解決軟件依賴(lài)問(wèn)題
你是否曾在安裝某些軟件時(shí)遇到過(guò)“需要.NET Framework 3.5”的提示?實(shí),只需要幾步簡(jiǎn)單的操作,你就可以輕松解決這個(gè)問(wèn)題2025-10-28
VS Code中Java擴(kuò)展代碼重構(gòu)功能的使用詳解
在軟件開(kāi)發(fā)過(guò)程中,重構(gòu)是一個(gè)非常重要的環(huán)節(jié),重構(gòu)可以提高代碼的可讀性、可維護(hù)性和可擴(kuò)展性,使代碼更加健壯和易于理解,本文將介紹如何使用 VSCode 進(jìn)行 Java 代碼重構(gòu)2025-09-20





