大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> ASP专区 -> 如何提高WEB程序的效率 (第一篇SQL篇)  (转)

如何提高WEB程序的效率 (第一篇SQL篇)  (转)

时间: 2021-07-31 作者:daque

怎样普及web步调的功效 (第一篇"sql篇")      很多网友特殊不爱好用asp来编制程序,她们老是埋怨说asp步调太慢,功效太低。更蓄意用php,jsp等来写步调。本来不许从 "觉得" 这个观点来看题目 ,而该当从本质中看题目,asp真的很慢的吗,那么微软的站何以用asp也不慢呢?php真的很快吗,本来它也仍旧是证明性的谈话。只然而在linux下的贯串比拟好而以。jsp的开拓也不会大略到何处,并且要经过jdbc-odbc桥本领贯穿access库等,这种情景下功效也不高。  本来,三种谈话各有特性,即是优,缺陷。动作一个步调员不该当老是怪谈话不好,而更该当看中的是本人的本领。以是即日咱们不会比拟这三种web谈话究竟谁好,谁坏,而是解说怎样普及步调的实行功效题目。第一篇:sql语句篇  web步调中最引人注手段该当是数据库操纵。即日咱们就来讲讲怎样普及sql语句的功效。假如有一张构造如次的users的表格,个中id为主键。仍旧有10000条记载。id int 4 自增name char 10 //全名age int 2 //年纪sex char 2 //性别 默许值为 "男"address nvchar 255 //地方cash int 4 //积分photo char 2 //能否有像片 默许值为 "没有"photourl nvchar 255 //像片路途    首页咱们讲讲对于数据库中表和字段的题目,对于web举行的数据库东西中,天然表的个数越少,越好;表中的安段个数越少,越好;字段中所占的字节是越少,越好。  比方users表中sex的字段实足不妨用bit字段,举行0或1的操纵,不妨设置 "0"为女性,而 "1"为女性,如许就不妨缩小char所占的字节数,如许记载一多仍旧十分可观的。  再比方表的photo的字段基础不妨去掉,如许更能缩小字段,进而加速读取的速率。由于photo字段不过用来确定用户能否有像片,而咱们安定不妨用photourl字段来确定。如photourl字段的值即使为空,就表白此用户没有像片,要不即使有的话,photourl字段确定是有值的,同样不妨实行相映的功效。比方咱们要表露出前10个用户名的记载。有的网友会举行如次的操纵:i=0set rs=conn.execute("select * from users")do while not rs.eof and i<=10i=i+1response.write("name")&"<br>"rs.movenextloop  这段代码是不妨实行上头的功效,然而即使真实的放到步调中,功效就太低了。由于底下的步调一下然而读出了一切的记载,即10000条啊,可咱们只须要10条啊,即使如许的话是否太滥用啊,固然咱们不妨运用ms sql中的top吩咐来实行这个求,或是mysql中的limit吩咐。其余,咱们只须要用户名的字段表露出来,而其余的基础不须要,而此网友却用了 "select *" 的吩咐,一下子读了一切字段的值,这利害常没有需要的,并且在字段很多的情景下,更是加剧了实行的承担。以是说该当运用 "select 字段"来举行相映的操纵。以是上头的步调不妨窜改为:set rs=conn.execute("select top 10 name from users")do while not rs.eofresponse.write rs("name")&"<br>"rs.movenextloop如许的话,在记载很多的情景下,操纵会快出很多。其余在操纵中断后,不须要再举行操纵时,确定要封闭数据库的贯穿。set rs=nothingset conn=nothing有的网友说,从来是如许啊,那他用底下的代码来察看users表中就不妨用底下的代码来实行了。set rs=conn.execute("select name from users")i=0do while not rs.eofi=i+1rs.movenextloopset rs=nothing本来,这段代码的功效仍旧利害常卑下的。为了领会表中有几何条记载,而遍历一切记载,利害常不足的。咱们实足不妨用底下的代码来实行:set rs=conn.execute("select count(id) as num from users")i=rs("num")set rs=nothing是否很大略呢,本来count()吩咐就不妨统计出你所要查问的记载数,用where加上前提也不妨。即使一位用户对数据库一其次举行几何个操纵的话,咱们还要提防在操纵后锁定表,用lock操纵实行后解锁的办法,用unlock,由于即使一位用户在操纵数据库,另一位用户也正在操纵,简单形成数据的凌乱,以至使数据插错记载号,爆发特殊重要的成果。在asp的操纵中,对于数据库的操纵,辨别有两种本领,一种是径直援用conn.execute流,另一种是运用rs.open操纵。两种操纵各有其长处,而在ms sql操纵中,前者运用的比拟多,由于它是一种简单流的操纵,普遍不许运用rs.addnew或rs.update等,由于此种操纵要翻开表的写操纵才行,如rs.open sql,conn,3,3,反面的3就表白不妨实行写操纵,而1表白是读操纵。结果,该当要尽大概多的运用where前提,把多个语句合在一道。比方:表露按积分的上下陈设的最前方的10位女性用户的用户名。看看一位网友底下的代码:set rs=conn.execute("select * from users order by cash desc")i=0if i<=10 and not rs.eof thenif rs("sex")='男' thenresponse.write rs("name")&"<br>"i=i+1end ifrs.movenextend ifset rs=nothing这段代码同样不妨实行上头的工作,然而功效简直是太低了,从数据库中读出的每一句还要举行一次确定。对于性其余确定实足不妨放到where语句中,底下看看窜改过的代码:set rs=conn.execute("select top 10 name from users where sex='男' order by cash desc")do while not rs.eofresponse.write rs("name")&"<br>"rs.movenextloopset rs=nothing  加上上头讲到的top吩咐,select 字段名,和where的前提确定,不只使步调代码缩小很多,并且也会使得步调的实行功效大增。  本来普及sql谈话的功效再有很多,只然而那些都是入门者伙伴或是中级的伙伴城市常常遇到,而又不留心的场合。蓄意大师能多多进修,广开思绪,连接的从试验中获得体味。  因为自己的程度有限,如有缺点和不及再所不免,尽请在http://luyu.net本站的乒坛中提出,让咱们共通超过。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.