会员注册 | 电脑急诊 | 中国汽车救援中心网 | 中国电脑视频网 | 装机必备软件 | 淘宝商城
·维修资料下载
·视频教程下载
·
网络教程下载
·加盟地方救援
·
我要学维修
·
电子书下载
进入论坛 地图
教程 | 技巧 | 笔记本 | 安全 | 网络故障 | 建站经验 | 维修资料 | 行情 | Vista | Win Xp | 手机 | MP3 | DVDC | Q Q | 评测 | DIY | 厂商 | 源码 | 病毒 | 数据恢复
[菜鸟学院] 操作系统 程序设计 网站开发 图像动画 办公软件 [故障查询] CPU 主板 硬盘 内存 显示器 打印机 光驱 显卡 [PC电子书] 软件教程 硬件技术 数据理论 网络技术
【救援中心俱乐部】
120急诊室  菜鸟学院  视频教程
俱乐部活动 软件世界  操作系统
维修资料   网络世界  网站建设
笔记本专栏 硬件世界  聊天专栏
网友靓照   个人专栏  原创交流
灌水乐园   贴图中心  游戏世界
当前位置:首页 > 菜鸟学院 > 编程开发 > VB > 正文

提高Visual Basic访问数据库的效率
   2006-6-4 8:30:02 来源: 进入论坛 添加到收藏夹

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# 分解成下面的操作后,访问速度可大大提高:

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

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


 
打印】【电脑俱乐部】【电脑视频】【电脑故障】【电脑学院】【电子书】【关闭
精彩视频教程推荐
电子书下载
推荐阅读
·Windows 2008下IIS7设置FTP的技巧
·妙用系统配置文件切换各种网络环
·巧妙设置 为你的快车再提一把速 
·寻找Office 2007“隐藏”的功能 
·用PowerPoint轻松制作动态音乐相
·巧妙运用Excel中边界的附加功能
·Windows自动更新有时还是关了好 
·找回系统的完璧之身 你还再用光盘
·用“不能打开”的文件夹保护重要
·让Vista资源管理器预览Office文档
·资源管理器也能干“瓷器活”
·去除Vista的“无法显示菜单项”提
·Fedora特性-Smolt 解决硬件兼容烦
·网警释疑 BT上载淫秽视频等于传播
·番茄花园之后 网吧是微软的下一目
·笔记本在开机到桌面后会出现一秒

视频教程
EasyBoot制作双系统启 EasyBoot制作WinodwsX
最新新闻
·Windows 2008下IIS7设置FTP的技巧 
·妙用系统配置文件切换各种网络环境 
·巧妙设置 为你的快车再提一把速 
·寻找Office 2007“隐藏”的功能 
·用PowerPoint轻松制作动态音乐相册
·巧妙运用Excel中边界的附加功能
·Windows自动更新有时还是关了好 
·找回系统的完璧之身 你还再用光盘吗 

装机必备软件下载
 
关于我们 | 合作媒体 | 版权声明 | 联系方式 | 意见反馈 | 广告业务 | 网站地图 | 急救中心

Copyright © 2003--2007 中国电脑援救中心版权所有
鲁ICP备05000605号