提高VisualBasic访问数据库的效率

2016-02-19 19:28 0 1 收藏

今天图老师小编给大家介绍下提高VisualBasic访问数据库的效率,平时喜欢提高VisualBasic访问数据库的效率的朋友赶紧收藏起来吧!记得点赞哦~

【 tulaoshi.com - 编程语言 】

1.尽量使用事务处理更新数据库

  VB的事务处理包括以BeginTrans开始,以CommitTrans或Rollback结尾的多条数据库操作指令。事务处理除了能很好的保证数据库的完整性以外,同时能大大提高数据库批量更新的效率。这是因为如果数据库更新操作没有使用事务处理,则每次Update操作都会引起数据库写盘一次。使用事务处理后,更新只在内存缓冲区内进行,执行CommitTrans时才将所有修改一次写回到磁盘中。使用事务处理要注意一下几点:

  (1)事务处理要有很完善的错误检查机制;

  (2)因为VB在事务处理结束前对数据库使用了页面锁.所以在多用户环境中,如果事务被挂起,则其他用户将无法访问上锁的数据。
  

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  2.尽量使用代码分解Select检索操作

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

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

->

来源:https://www.tulaoshi.com/n/20160219/1621090.html

延伸阅读
VisualBasic3.xForWindows是一门开发Windows应用程序很好的一种语言,使用它能够开发出大型的应用系统。它具有访问各种数据库的功能。下面将谈谈用VB访问数据库应注意的几个问题。 一、如何来访问数据库。VB访问数据库提供二种方法,其一是用数据控制,其二是使用对象来访问数据库。在这两种方法中,都涉及到数据库的属性:connect,databas...
访问其它MicrosoftJet数据库(.mdb)中的数据,包括用M1crosoftJet的老版本建的各种数据库。 1.链接外部MicrosoftJet表 为了在本地MicrosoftJet数据库中链接外部MicrosoftJet表,可以先用OpenDatabase方法打开本地MicrosoftJet数据库,建立一个TableDef对象,并设置该对象的Connect和SourceTableName属性,以分别指定希望链接的外部Microso...
MicrosoftJetXbaseIISAM驱动程序支持下列版本的MicrosoftFoxPro:2.0,2.5,2.6,3.0和DBC。当通过MicrosoftJet数据库引擎访问FoxPro数据库时,还应当考虑MicrosoftJet如何处理FoxPro数据类型、已删除的记录、FoxPro索引和备注字段。为了在MicrosoftJet中访问FoxPro数据库,应指定适当的连接信息,包括: (1)源数据库类型:可以是下列中的一个:...
标签: ASP
  网上介绍用ASP访问INTERBASE数据库的资料很少,经过几天的奋斗终于成功的解决了这个问题.现把部份代码和一些资料贡献给大家. <%@ language="vbscript"%         str1 = "Driver={XTG Systems Interbase6 ODBC driver};uid=sysdba;pwd=masterkey;Data Source=ly" Set conn = Server.Creat...
这是我前段时间学数据库时做的一个小程序,采用DAO访问ACCESS数据库,程序的主界面如下,控制相对来说很是简单,实现了数据库的基本操作。如图一所示: 几点说明: 在程序中使用了CButtonStyle这个免费类库,它可以实现带位图的按位,这里是以加载图标的方式操作的,在InitButtonSytle()中,为了使代码更短小,用循环实现了图...

经验教程

100

收藏

5
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部