通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 网络赚钱 | 网站地图 | 广告服务 | 服务
当前位置:首页>>编程开发>>sql专区>>正文 新版上线![旧版]
注:打开慢时请稍等
全面优化ado

http://www.iyit.net  日期:2006-5-3 19:19:07  来源:  点击:
参加讨论
1 connection
1.1 pooling
在web application中,常常会出现同时有很多用户同时访问数据库的情况,而且asp中的对象作用域是页面级的,也就是
说,每个页面都要联接和断开数据库,岂不是会很慢?而且每个到sql server数据库的联接会带来37k的系统开销,怎么
办?
可能有人会想到用application和session来解决问题,但是,这是不可取的,如果用application,那么会出现多个用户同
时通过一个connection访问数据库的情况,虽然节省了建立连接的时间,但是访问数据库的速度就会变得非常慢。如果用
session,出现的问题就是,session超时怎么办?如果把session.timeout设得很大,那用户离开之后,连接还会保留一段
时间,也会带来额外的开销。
其实根本不用考虑这个问题,通过ole db访问数据库,它会替你解决这个问题,ole db有一个resource pooling,它会代
理你的连接请求,然后把别人刚用过的连接给你接着用。(具体机制不再阐述,其实我也没搞太明白,嘻嘻)
1.2 provider
可能没有多少人用过这个property吧,它的缺省值是msdasql,还有msidxs和adsdsoobject,但是在ado2.0(见vs98)和
ado2.1(见sql7)里面提供了一些新的provider:
msdaora (ole db provider for oracle)
microsoft.jet.oledb.3.51(ole db provider for microsoft jet( for access))
sqloledb(microsoft sql server ole db provider)
如果你所用的数据库是这些的话,用这些新的provider就可以不通过odbc而直接访问数据库,提高的效率就可想而知了。
2 command
2.1 commandtype
缺省值是adcmdunknown,ado会逐个判断你的commandtype,直到它认为合适为止,不建议采用。(在recordset.open和
connection.execute的时候也可以用)
adcmdtext是照原样执行你的sql语句,但是如果你的sql language是以下几种的话,通过使用别的commandtype就可以提高
你的sql语句执行效率
objcmd.execute "select * from table_name", adcmdtext可替换为objcmd.execute "table_name",adcmdtable
objcmd.execute "exec proceuure_name",adcmdtext可替换为objcmd.execute "proceuure _name", adcmdstoredproc
还有很重要的一点就是,如果你的sql语句没有返回记录集,如insert和update等,那么使用adexecutenorecords
(ado2.0)可以减低系统开销(可以加到adcmdtext 和adcmdstoredproc上,如adcmdstoredproc + adexecutenorecords)
还有adcmdtabledirect和adcmdfile(ado2.0),我还不太清楚怎么用,adcmdfile可用于访问一个xml文件。
2.2 prepared
如果你需要重复的执行类似的sql语句,那么你可以预编译你的sql语句,提高的效率也很可观
objcmd.commandtext = "select spell from typer.wordspell where word = ? "
objcmd.prepared = true
objcmd.parameters.append objcmd.createparameter("word", advarchar, , 2)
for i = 1 to len(strname)
strchar = mid(strname, i, 1)
objcmd("word") = strchar
set objrs = objcmd.execute
if objrs.eof then
strnamesame = strnamesame & strchar
else
strnamesame = strnamesame & objrs("spell")
end if
next ''i = 1 to len(strname)
3 recordset
3.1 locktype
缺省是adlockreadonly,如果你不用修改数据,就不要改成adlockoptimistic之类的,否则也会减低速度和增加开销的
adlockreadonly > adlockpessimistic > adlockoptimistic > adlockbatchoptimistic
3.2 cursortype
缺省是adopenforwardonly,如果你只用movenext method,也最好不要改,速度影响140%左右
adopenforwardonly > adopendynamic > adopenkeyset > adopenstatic
3.3 cursorlocation
缺省是aduseserver,其实不好,它可以随时反映数据库服务器上的改动,但是系统开销很大,而且需要维持和数据库服务
器的连接,但是在数据库服务器和web server在一起的时候要快些。不过在adlockoptimistic的时候使我无法使用
recordcount等property。
使用用aduseclient的话,你可以对数据做再排序,筛选,shape等操作
如果对数据的实时性没有要求的话,尽量用aduseclient
4 其它
4.1 early bind
用asp这一点就不用看了,如果用vb的话
dim objconn as adodb.connection 比 set objconn = createobject("adodb.connection")要好
4.2 ado 2.1里的shape真是好玩
4.3 ado 2.1可以用objrs.fields.append来建立一个recordset
4.4 把recordset的一列数据直接变成一个数组来操作速度快一些,但是系统开销要大一些

编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:优化-数据库
下一篇:将数据库中的数据通过client控件显示,有源代码
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
最新更新 热点排行 推荐新闻
sql server 7.0与以前的版本相比,安全
设置proxy server和sql server实现互联
microsoft sql server 7.0安全问题   
mysql安全性指南(3)(转)           
mysql安全性指南 (2)(转)          
在frontpage 2000中插入flash动画
用frontpage 2000使图像“减肥”
提高frontpage 2002使用效率
用frontpage 2000创建网页动画
用frontpage 2000巧做样式表
用frontpage 2000制作鼠标光照特效
用frontpage轻松转换图片格式
frontpage10全透视教程(9)
frontpage10全透视教程(8)
frontpage10全透视教程(7)
sql server 7.0与以前的版本相比,安全
sql简明教程(6)
sql简明教程(5)
sql简明教程(4)
sql简明教程(3)
qq珊瑚虫外挂4.0版本发布!
多个广告位招商!
摄影后期系列一:1分钟为数码相片去红眼
qq挂机说明
asp进度条
photoshop通道抠图:给秀发飞扬的mm照
教您显示器亮度对比度的调节
新版上线,今日正式开通!!!
更多精彩图文广告等着您!
asp中使用sql语句教程
sql简明教程(1)
第二十章 开发delphi对象式数据管理功
sql简明教程(1)
vbscript和javascript互相调用 
jsp教程(四)-jsp actions的使用
操作系统被入侵后的修复过程
五一别忘电脑防毒 养成良好上网习惯
google对ie浏览器将捆绑搜索功能表担忧
新版上线,今日正式开通!!!
用photoshop创意图形“岁月”
摄影后期系列一:1分钟为数码相片去红眼

 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息