首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 虚拟主机评测对比
全面优化ADO-数据库专栏,SQL Server
作者:网友供稿 点击:20
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
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的一列数据直接变成一个数组来操作速度快一些,但是系统开销要大一些


文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·Asp.Net下导出/导入规则的Excel(.xls)文件-ASP教程,ASP应用
·中国万网,万网
·中资源
·上海火速
·加拿大中文网
·华夏名网
·世纪东方
·商务中国
·中国E动网
·神话网络
最新文章
·photoshop抠图合成特效:飞出照片相框_photoshop教程
·将升级的windows vista驱动还原到原来的版本_windows vista
·photoshop漫画笔刷绘制非主流照片漫画_photoshop教程
·看域名注册信息判断网赚公司真假_网赚技巧
·找坐标:对网站进行坐标定位_站长心得
·如何增加网站pv_站长心得
·google性格一:对活跃度高的网页收录很快_google推广
·googleadsense容易被k的可能性列表_google推广
·价值数万的googlepr作弊方_google推广
·如何抢占人家的“首要意念”_google推广
相关主题
  • 全面优化ASP应用程序的性能(转载)-ASP教程,ASP应用
  • 全面优化ASP应用程序的性能(转载)-ASP教程,ASP应用
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭