1.盡量使用事務處理更新數(shù)據(jù)庫
VB的事務處理包括以BeginTrans開始,以CommitTrans或Rollback結尾的多條數(shù)據(jù)庫操作指令。事務處理除了能很好的保證數(shù)據(jù)庫的完整性以外,同時能大大提高數(shù)據(jù)庫批量更新的效率。這是因為如果數(shù)據(jù)庫更新操作沒有使用事務處理,則每次Update操作都會引起數(shù)據(jù)庫寫盤一次。使用事務處理后,更新只在內存緩沖區(qū)內進行,執(zhí)行CommitTrans時才將所有修改一次寫回到磁盤中。使用事務處理要注意一下幾點:
(1)事務處理要有很完善的錯誤檢查機制;
(2)因為VB在事務處理結束前對數(shù)據(jù)庫使用了頁面鎖.所以在多用戶環(huán)境中,如果事務被掛起,則其他用戶將無法訪問上鎖的數(shù)據(jù)。
2.盡量使用代碼分解Select檢索操作
使用Select進行數(shù)據(jù)庫操作固然簡單易用,但如果將一些檢索操作分解為等價的手工檢索代碼,則對數(shù)據(jù)庫的檢索速度將大大加快.分解的基本方法是對檢索關鍵字段進行索引,利用Seek方法定位后,根據(jù)索引的數(shù)據(jù)庫已經(jīng)排序的特點,進行遍歷查找.對于遍歷范圍不是很寬時,這種方法能幾十倍的提高數(shù)據(jù)庫的訪問速度.例如:Select * from person where vol= '123' and birth= #11-02-73# 分解成下面的操作后,訪問速度可大大提高:
Table.Index= "vol"Table.Seek "=","123"if not table.nomatch then
while not table.eof
if table("vol")="123" then
table.movelast
else if table("Birth")= #11-02-73# then
'找到記錄
end if
table.movenext
wendend if
VB的事務處理包括以BeginTrans開始,以CommitTrans或Rollback結尾的多條數(shù)據(jù)庫操作指令。事務處理除了能很好的保證數(shù)據(jù)庫的完整性以外,同時能大大提高數(shù)據(jù)庫批量更新的效率。這是因為如果數(shù)據(jù)庫更新操作沒有使用事務處理,則每次Update操作都會引起數(shù)據(jù)庫寫盤一次。使用事務處理后,更新只在內存緩沖區(qū)內進行,執(zhí)行CommitTrans時才將所有修改一次寫回到磁盤中。使用事務處理要注意一下幾點:
(1)事務處理要有很完善的錯誤檢查機制;
(2)因為VB在事務處理結束前對數(shù)據(jù)庫使用了頁面鎖.所以在多用戶環(huán)境中,如果事務被掛起,則其他用戶將無法訪問上鎖的數(shù)據(jù)。
2.盡量使用代碼分解Select檢索操作
使用Select進行數(shù)據(jù)庫操作固然簡單易用,但如果將一些檢索操作分解為等價的手工檢索代碼,則對數(shù)據(jù)庫的檢索速度將大大加快.分解的基本方法是對檢索關鍵字段進行索引,利用Seek方法定位后,根據(jù)索引的數(shù)據(jù)庫已經(jīng)排序的特點,進行遍歷查找.對于遍歷范圍不是很寬時,這種方法能幾十倍的提高數(shù)據(jù)庫的訪問速度.例如:Select * from person where vol= '123' and birth= #11-02-73# 分解成下面的操作后,訪問速度可大大提高:
Table.Index= "vol"Table.Seek "=","123"if not table.nomatch then
while not table.eof
if table("vol")="123" then
table.movelast
else if table("Birth")= #11-02-73# then
'找到記錄
end if
table.movenext
wendend if

