1、服務器資源消耗很低,但是涉及Access數(shù)據(jù)庫的頁面訪問非常緩慢,最終無法打開;
2、重啟IIS后,ASP + Access頁面能正常訪問一段時間,但是過了一會又無法訪問;
3、用軟件查看到進程中無數(shù)被w3wp.exe 鎖定的Access數(shù)據(jù)庫文件;
4、部分客戶來電:之前在XXX運行正常,在你們這里怎么經(jīng)常Access堵塞?
……
問題分析:
1、ASP + Access搭配使用,簡單方便,因此成為普通網(wǎng)站的首選;但Access始終是桌面級數(shù)據(jù)庫,無法經(jīng)受大量數(shù)據(jù)和頻繁使用的考驗。
2、在服務器上,可能有幾百個站,每個站又可能有幾個Access數(shù)據(jù)庫,因此短時間內對Access數(shù)據(jù)庫的查詢、修改、刪除等操作將可能非常密集;
3、access的并發(fā)連接一般只允許四個以內,ASP每次打開Access數(shù)據(jù)庫,都需要占用一個并發(fā),使用完后再注銷。如果某個頁面在短時間內請求很頻繁,數(shù)據(jù)庫很大或設計得不合理,就會長時間霸占并發(fā)連接,導致別的查詢都排隊等待,直到產生堵塞。
4、由于MS Access的數(shù)據(jù)庫結構,對添加后刪除的數(shù)據(jù),數(shù)據(jù)庫不進行壓縮和清空處理,依然保留原來的空間,因此導致了數(shù)據(jù)量沒增加多少,但數(shù)據(jù)庫越來越大!從而導致ACCESS性能嚴重下降。
……
解決辦法:
1、優(yōu)化程序代碼:
(1)一些程序員習慣每次查詢數(shù)據(jù)庫都用“select * from tabename...”,但是select 出來的數(shù)據(jù),只用那么一個字段,造成了巨大的浪費;
(2)盡量不使用“保守式鎖定,開放式鎖定 和 開放式批更新”,除非必須使用才能完成功能;
(3)打開數(shù)據(jù)庫之后,記得盡快關閉數(shù)據(jù)庫,避免長期占用資源!
(4)優(yōu)化程序代碼,是一項耗時的工作,特別是虛擬主機用戶,客戶的站點無數(shù),不可能一個一個檢查客戶的代碼。
2、壓縮/修復數(shù)據(jù)庫:
(1)找到大的數(shù)據(jù)庫,打開,并進行 壓縮/修復,這樣,對那種數(shù)據(jù)量變化很大的數(shù)據(jù)庫很有效,缺點是一般服務器上都沒有安裝Access軟件,所以只能下載下來操作,操作性極差。

3、用軟件批量壓縮:
(1)最方便的,就是使用軟件進行批量壓縮/修復,無需安裝Access軟件,直接上傳軟件,即可將所有的數(shù)據(jù)庫統(tǒng)統(tǒng)壓縮完畢!
(2)護衛(wèi)神Access批量壓縮軟件,只有136K,用最小的資源消耗,壓縮MS Access 2000、MS Access 2002/2003數(shù)據(jù)庫,輕松解除批量壓縮的麻煩!