亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

提高Visual Basic訪問數據庫的效率

系統 1618 0
  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# 分解成下面的操作后,訪問速度可大大提高:

?1 Table.Index = ? " vol " Table.Seek? " = " " 123 " if ? not ?table.nomatch? then ?
?2 while ? not ?table.eof?
?3 if ?table( " vol " ) = " 123 " ? then ?
?4   table.movelast?
?5 else ? if ?table( " Birth " ) = ?# 11 - 02 - 73 #? then ?
?6 ' 找到記錄?
?7 end ? if ?
?8  table.movenext?
?9 wendend? if ??


  3.使用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方法

提高Visual Basic訪問數據庫的效率


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 一级黄色a毛片 | 一级毛片成人免费看免费不卡 | 97视频在线免费 | 高清视频一区 | 成人免费小视频 | 香蕉福利 | 中文字幕日韩视频 | 奇米777第四 | 德国女人一级毛片免费 | 免费男女网站 | 久久亚洲精品中文字幕三区 | 亚洲一区二区三区在线播放 | 亚洲欧洲尹人香蕉综合 | 高清久久 | 日韩日日操 | 51啪影院| 欧美亚洲国产精品第一页 | 综合色亚洲 | 久久精品免视看国产成人2021 | 成人欧美一区二区三区 | 99热热久久这里只有精品166 | 亚洲七七久久精品中文国产 | 精品免费tv久久久久久久 | 中文字幕亚洲综合精品一区 | 亚洲成aⅴ人片在线观 | 婷婷在线视频国产综合 | 亚洲一区二区三区福利在线 | 欧美aaa大片 | 亚洲久久在线观看 | 夜夜狠狠狠狠 | 黄 色 免 费 网站在线观看 | 色偷偷久久一区二区三区 | 欧美日韩精品一区二区在线线 | 日本一本一区二区 | 国内精自品线一区91 | 欧美aⅴ在线| 亚洲精品综合网 | 亚洲成网站www久久九 | 玖玖在线资源 | 能在线观看的一区二区三区 | 久久99精品国产99久久6男男 |