国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

提高VisualBasic訪問數據庫的效率

2019-11-18 17:31:11
字體:
來源:轉載
供稿:網友
1.盡量使用事務處理更新數據庫

  VB的事務處理包括以BeginTrans開始,以CommitTrans或Rollback結尾的多條數據庫操作指令。事務處理除了能很好的保證數據庫的完整性以外,同時能大大提高數據庫批量更新的效率。這是因為如果數據庫更新操作沒有使用事務處理,則每次Update操作都會引起數據庫寫盤一次。使用事務處理后,更新只在內存緩沖區內進行,執行CommitTrans時才將所有修改一次寫回到磁盤中。使用事務處理要注意一下幾點:

  (1)事務處理要有很完善的錯誤檢查機制;

  (2)因為VB在事務處理結束前對數據庫使用了頁面鎖.所以在多用戶環境中,如果事務被掛起,則其他用戶將無法訪問上鎖的數據。

  2.盡量使用代碼分解Select檢索操作

  使用Select進行數據庫操作固然簡單易用,但如果將一些檢索操作分解為等價的手工檢索代碼,則對數據庫的檢索速度將大大加快.分解的基本方法是對檢索關鍵字段進行索引,利用Seek方法定位后,根據索引的數據庫已經排序的特點,進行遍歷查找.對于遍歷范圍不是很寬時,這種方法能幾十倍的提高數據庫的訪問速度.例如:Select*frompersonwherevol='123'andbirth=#11-02-73#分解成下面的操作后,訪問速度可大大提高:

Table.Index="vol"Table.Seek"=","123"ifnottable.nomatchthen
whilenottable.eof
 iftable("vol")="123"then
  table.movelast
 elseiftable("Birth")=#11-02-73#then
  '找到記錄
 endif
 table.movenext
wendendif

  3.使用attach綁定數據庫表

  當使用ODBC連接MSSQLServer,Oracle和Sysbase之類的數據庫服務器時,我們可以通過MSAcess的attach功能將服務器上的表綁定到MSAcess數據庫中,因為MSAcess數據庫能緩存數據庫服務器上表的結構,當我們訪問ODBC數據源時能提高系統的訪問性能。

  4.使用dbSQLPassThrough選項

  連接MSSQLServer,Oracle和Sysbase數據庫服務器時,使用dbSQLPassThrough選項可將命令直接發送給數據庫服務器,從而減少中間件對命令的檢查和解釋,提高了數據庫的訪問性能。下例使用存儲過程建立Dynaset:

  dimmydbasdatabasedimmydsasdynasetsetmydb=opendatabase(..........)'打開數據庫setmyds=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方法。

->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 马山县| 淮安市| 汉阴县| 灌阳县| 涿鹿县| 合作市| 广州市| 南充市| 朝阳区| 仁化县| 枝江市| 五华县| 巴楚县| 道真| 灵台县| 合阳县| 高雄市| 中西区| 绥江县| 成武县| 东平县| 磴口县| 西贡区| 博兴县| 读书| 吴川市| 息烽县| 广灵县| 沛县| 焦作市| 綦江县| 定安县| 秭归县| 晋宁县| 黄平县| 津市市| 长武县| 安国市| 泗洪县| 华坪县| 云浮市|