网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Visual Basic
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.VB常见问题解答(1).
.在VB编程中采用Windows脚本控件实.
.HierarchicalFlexGrid控件.
.播放flc文件动画.
.如何交换鼠标按键.
.插入对象.
.Frame控件的使用.
.创建无Icon的窗口.
.直接使用ODBCAPI访问数据库的VB程.
.VB取磁盘序列号卷标和文件系统类.
.在VB中获取和修改计算机名字.
.快速找到选中的OptionButton.
.VisualBasicCommonDialog控件的使.
.用VB实现在程序运行时使系统日期.
.表单及控件的引用阻止了表单的卸.
.VB中远程数据库的访问(1)-数据.
.VB中的处理问题.
.VB查找并替换WORD文档中的字符串.
.DataGrid控件的使用三.
.掌握开发的武器-语言.

提高VisualBasic访问数据库效率

发表日期:2006-2-27


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方法

->

上一篇:VB中OLE调用的优化方法 人气:2938
下一篇:如何编写高质量的VB代码 人气:3483
浏览全部Visual Basic的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐