導航:首頁 > 編程大全 > access資料庫太大怎麼辦

access資料庫太大怎麼辦

發布時間:2025-03-11 16:24:40

A. Access資料庫文件過大,壓縮了好久還是超過50m怎麼辦

1、經實踐總結,當Access資料庫超過50M時,網站的整體響應會變得非常緩慢,同時也會影響伺服器上內其他網站的性能。如果容數據非常大,建議你升級為SQL Server資料庫。

2、如果你的網站中有留言本等交互性頁面,務必設置驗證碼等防護措施,以免被黑客灌入大量數據,出現資料庫持續變大的不利情況。

3、我們在設計程序時,注意在頁面的尾部加上資料庫關閉代碼,有利於網站的良好運行。代碼示例如下:
Rs.Close
Set Rs=Nothing
Conn.Close
Set Conn=Nothing

B. 怎麼解決ACCESS資料庫太大造成運行慢的問題

1.時候在使用Access文件的時候,隨著增刪改的不斷的連續,會導致文件越來越大。即使手動刪除或者使用delete語句刪除了大量的數據記錄,會發現文件的大小依然沒有減掉,而且隨著你再往裡寫數據,又會增大。
2.產生這個現象的原因跟Access本身的機制有關,具體也不清楚,好像是有什麼歷史記錄還是什麼存儲碎片。ACCESS資料庫在進行刪除操作後,並不從該資料庫中把數據清除掉,而是刪除其索引相關的東西,雖然顯示不出來,但是那些東西還是在文件中存在的,所以會引起ACCESS資料庫文件越來越大。即使是我們不通過代碼來訪問access文件,而只是通過用戶界面訪問,隨著文件的增大,也會帶來一系列的問題。其症狀包括:對象可能打開得更慢,查詢可能比正常情況下運行的時間更長,各種典型操作通常似乎也需要使用更長時間。更何況如果在網站應用中,採用的是Access作為資料庫的話,這里就有了性能上的問題。文件越來越大,會影響查詢的速度,而且ACCESS是採用獨占方式工作的,也就是說一次只能一個進程打開這個資料庫執行操作,如果是多個用戶的話就要"排隊"了,所以ACCESS資料庫如果變為很大的話,執行一個查詢時間就會變長,而進程"排隊"的等待時間也就會變得很久,專業型的資料庫就不同,可以同時接收多個並發的訪問,可以採用SQL資料庫或其它大型並發數很強的資料庫。

3.但是很多時候我們是需要Access文件,往不同的地方拷貝的,比如說,一個Server上生成了一個Access文件,需要拷貝到另外的Server上,而且Server間如果網速不是很好的話,會需要很長的時間來傳輸這個文件。所以這時候我們希望這個文件在內容不變的前提下,越小越好。所以我們可以去除這個Access的冗餘信息。

4.Office Access本身就有這種功能,我們可以通過菜單找到這個工具,然後單擊這個圖標手動壓縮。

5.執行以下這幾句代碼就可以了。
首先引用C:Program FilesCommon FilesSystemadomsadox.dll,該DLL包含ADOX命名空間;
接著引用C:Program FilesCommon FilesSystemadomsjro.dll,該DLL包含JRO命名空間
注意:如,導入dll不成功,手動把com組件 導入為 .net組件,在用vs.net工具導入

///壓縮修復ACCESS資料庫,mdbPath為資料庫絕對路徑
public void Compact(string mdbPath)
{
if (!File.Exists(mdbPath)) //檢查資料庫是否已存在
{
throw new Exception("目標資料庫不存在,無法壓縮");
}
//聲明臨時資料庫的名稱
string temp = DateTime.Now.Year.ToString();
temp += DateTime.Now.Month.ToString();
temp += DateTime.Now.Day.ToString();
temp += DateTime.Now.Hour.ToString();
temp += DateTime.Now.Minute.ToString();
temp += DateTime.Now.Second.ToString() + ".bak";
temp = mdbPath.Substring(0, mdbPath.LastIndexOf("\") + 1) + temp;
//定義臨時資料庫的連接字元串
string temp2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + temp;
//定義目標資料庫的連接字元串
string mdbPath2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + mdbPath + ";Jet OLEDB:Database Password=l1epc2";
//創建一個JetEngineClass對象的實例
JetEngineClass jt = new JetEngineClass();
//使用JetEngineClass對象的CompactDatabase方法壓縮修復資料庫
jt.CompactDatabase(mdbPath2, temp2);
//拷貝臨時資料庫到目標資料庫(覆蓋)
File.Copy(temp, mdbPath, true);
//最後刪除臨時資料庫
File.Delete(temp);
}

C. ACCESS資料庫變的非常大,如何瘦身

壓縮一下就好了。
或者直接把後綴改成cab,使用的時候使用ACCESS打開。
ACCESS軟體包括很多多餘的後台處理代碼,每一個視圖生成過程都會有很多未清理得痕跡,你可以做個實驗,拖放一個按鈕到窗體上,查看他的代碼,你會發現他已經再後台生成了一堆代碼。壓縮得目的,就是處理這些冗餘分配空間。

閱讀全文

與access資料庫太大怎麼辦相關的資料

熱點內容
華為自動同步數據在哪裡關 瀏覽:526
網路人身侵權權是什麼意思 瀏覽:429
巨人的工具中文版下載地址 瀏覽:231
java周轉換為日期 瀏覽:206
蘋果電腦復制文件夾 瀏覽:575
想學習機器人編程哪個學校好 瀏覽:737
手機電信網路怎麼樣 瀏覽:85
有什麼可以做無貨源的app 瀏覽:926
什麼是pct文件 瀏覽:218
哪裡vr編程培訓好 瀏覽:426
js彈窗並且刷新頁面 瀏覽:393
什麼是Revit的項目樣板文件 瀏覽:354
三星g975u1支持什麼網路 瀏覽:993
蘋果程序員工資 瀏覽:185
一台電腦一共有多少dll文件 瀏覽:561
js點擊按鈕彈出div 瀏覽:152
iphone6splus無線網路 瀏覽:542
哪個文件夾是放ps插件的 瀏覽:802
lg2是什麼文件 瀏覽:660
凍結qq號能防申訴嗎 瀏覽:861

友情鏈接