1.盡量使用事務處理更新資料庫
vb的事務處理包括以begintrans開始,以committrans或rollback結尾的多條資料庫操作指令。事務處理除了能很好的保證資料庫的完整性以外,同時能大大提高資料庫批量更新的效率。這是因為如果資料庫更新操作沒有使用事務處理,則每次update操作都會引起資料庫寫盤一次。使用事務處理後,更新只在記憶體緩衝區內進行,執行committrans時才將所有修改一次寫回到磁碟中。使用事務處理要注意一下幾點:
(1)事務處理要有很完善的錯誤檢查機制;
(2)因為vb在事務處理結束前對資料庫使用了頁面鎖.所以在多使用者環境中,如果事務被掛起,則其他使用者將無法訪問上鎖的資料。
2.盡量使用**分解select檢索操作
使用select進行資料庫操作固然簡單易用,但如果將一些檢索操作分解為等價的手工檢索**,則對資料庫的檢索速度將大大加快.分解的基本方法是對檢索關鍵字段進行索引,利用seek方法定位後,根據索引的資料庫已經排序的特點,進行遍歷查詢.對於遍歷範圍不是很寬時,這種方法能幾十倍的提高資料庫的訪問速度.例如:select * from person where vol= '123' and birth= #11-02-73# 分解成下面的操作後,訪問速度可大大提高:
1table.index="
vol"
table.seek "=
","123"if
nottable.nomatch
then
2while
nottable.eof
3iftable(
"vol")
="123"
then
4table.movelast
5else
iftable(
"birth")
=#11-
02-73#
then
6'找到記錄
7endif
8table.movenext
9wendend
if3.使用attach繫結資料庫表
當使用odbc連線ms sql server,oracle和sysbase之類的資料庫伺服器時,我們可以通過ms acess的attach功能將伺服器上的表繫結到ms acess資料庫中,因為ms acess資料庫能快取資料庫伺服器上表的結構,當我們訪問odbc資料來源時能提高系統的訪問效能。
4.使用dbsqlpassthrough選項
連線ms sql server, oracle和sysbase資料庫伺服器時,使用dbsqlpassthrough選項可將命令直接傳送給資料庫伺服器,從而減少中介軟體對命令的檢查和解釋,提高了資料庫的訪問效能。下例使用儲存過程建立dynaset:
dim mydb as databasedim myds as dynasetset mydb=opendatabase(..........)'開啟資料庫set myds=mydb.openrecordset("name",dbopendynaset,dbsqlpassthrough,...)
使用dbsqlpassthrough的缺點是返回的記錄集是唯讀的。
5.正確使用資料庫訪問物件table.
支援seek命令和索引.兩者配合能最快的找到紀錄.筆者曾經做過速度比較試驗,都是檢索10萬個記錄table 用時3.5秒dynaset 用時9秒snapshot用時10秒.支援讀寫操作.不支援sort和filter,必須使用index代替.對應於資料庫中的物理表,增,刪,改會直接影響資料庫表。
dynaset.最靈活的資料庫物件.支援讀寫操作,是記錄的動態子集.在odbc中,寫操作需要設定唯一性索引.支援sort和filter.使用join命令關聯多個表時,只能使用dynaset。
snapshot.只能讀不能寫,不能加鎖.不支援事務處理.不支援edit,addnew和update方法
如何提高訪問速度
對於一般的 來說,我們並沒有察覺到訪問速度的快慢!因為一般的 的資料量小,相對,各個方面都能快速的載入頁面和填充資料。但是,對於乙個上千萬的資料量時,我們是否應該考慮如何加快頁面的載入速度呢?我們設想一下,如果,一輛貨車,沒有載任何重物,它的速度甚至可以達到200km h,當貨車裝上十頓的貨物時,它...
hexo 提高訪問速度
hexo github訪問速度超慢!這兩天算是領悟到了它的龜速暴擊。原因只有乙個,託管 的github是外網,訪問外網慢是必然的。有很多人部落格採用hexo github coding方式,至於coding是什麼?大家可以理解為中國版的github,如果把 既託管到coding上,又託管到githu...
提高Github的訪問速度
由於cdn被遮蔽導致的github 的訪問速度很慢,但是可以通過修改本地的hosts檔案,繞過dns的解析來實現訪問的提速。實現如下 1 將c windows system32 drivers etc目錄下的hosts檔案用文字編輯器開啟備用。2 開啟 3 查詢assets cdn.github.c...