仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 387|回复: 8
打印 上一主题 下一主题

[学习教程] ASP编程:在ASP中优化数据库处置

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:16:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件数据|数据库|优化
ASP是一个Web服务器真个开辟情况,它供应了一种复杂易学的剧本(VBScript或Jscript),并带有很多内置的工具,从而供应了一条简便的编程之路。更加主要的是,ASP中供应了ADO工具,让程序员能够轻松操纵各类数据库,从而能够发生和运转静态的、交互的Web服务使用程序。
今朝,国际良多电子商务站点都接纳了ASP手艺来与数据库交互,为用户供应各种服务。
因为电子商务站点的年夜部分信息都寄存在数据库中,要进步Web的呼应速率、创建高功能的电子商务站点,很年夜一部分取决于ASP与数据库之间的处置功能,本文将详细先容一些优化数据库处置的办法。
利用ConnectionPool机制
在数据库处置中,资本花消最年夜的是创建数据库毗连,并且用户还会有一个较长的毗连守候工夫。若每个用户会见时,都从头创建毗连,不但用户要长工夫守候,并且体系有大概会因为资本损耗过年夜而中断呼应。假如可以重用之前创建的数据库毗连,而不是每次会见时都从头创建毗连,则能够很好地办理这些成绩,从而进步全部体系的功能。在IIS+ASP处置系统中,接纳了ConnectionPool机制来包管这一点。
 
ConnectionPool的道理是:IIS+ASP系统中保持了一个毗连缓冲池,创建好的数据库毗连在ASP程序中的断开都是逻辑断开,而实践的物理毗连被存储在池中并被加以保护。如许,当下一个用户会见时,间接从毗连缓冲池中获得一个数据库毗连,而不需从头毗连数据库,因而,能够年夜年夜地进步体系的呼应速率。
 
为了准确利用ConnectionPool机制,必需注重以下几点:
1.在MDAC2.0之前的版本中,必需经由数据库驱动程序的设置才干利用ConnectionPool;在今后的版本中(好比MDAC2.1),缺省是利用ConnectionPool机制。详细设置情形能够拜见微软公司的站点(http://www.microsoft.com/data/)。
 
特地提一句,在利用Oracle数据库时,最好利用微软供应的驱动程序。
2.每次数据库毗连串参数必需不异,不然会被以为是分歧的毗连而从头往毗连数据库,而不是利用缓冲池中的毗连。最好的做法是将毗连串存储在Application变量中,一切的程序在创建毗连时利用Application变量的值。
 
3.为了更好地利用和保护毗连缓冲池,倡议在程序中利用以下的办法对数据库毗连举行操纵,由于隐式利用数据库毗连时不克不及使用缓冲池的机制:
 
显式创立毗连工具:Setconn=Server.CreateObject(“Adodb.connection”)
创建数据库毗连:conn.openApplication(“connection_string”)
显式封闭毗连工具:conn.close
使用间接的OLEDB驱动程序
在ASP中,经由过程ADO可使用两种体例毗连数据库,一种是传统的ODBC体例,一种是OLEDB体例。因为ADO是创建在OLEDB手艺上的,为了撑持ODBC,必需创建响应的OLEDB到ODBC的挪用转换(如MSOLEDBproviderforODBC)。而利用间接的OLEDB体例(如MSOLEDBproviderforSQL,Oracle),则不需转换,从而进步处置速率,同时,还能使用OLEDB的新特征。
 
在内存中缓存ADO工具或其内容
一般,在ASP程序中,城市触及到一些存储在数据库中的经常使用信息,如省分列表、商品分类等,这些信息关于每个会见用户都是不异的。若每个用户会见时,都要往数据库里掏出来,然后显现给用户,不但会使数据库服务器负载减轻,没法疾速服务于更主要的事件处置,并且Web服务器也必需一直地创立ADO工具,从而损耗大批资本,招致了当用户良多时几近得到呼应。若能把一些经常使用信息事前存储在内存中,当用户会见时,间接从内存中掏出,显现给用户,则能够年夜年夜减小体系的压力,进步呼应速率。
好比,我们能够把已获得了数据的RecordSet工具存储在Application变量中,当用户会见时,从Application变量中获得RecordSet工具,而不需再次创建数据库毗连;也能够将RecordSet工具里的数据以其他体例存储,好比存储在数组中,然后再将数组存储在Application变量中,利用时用数组的体例读取。
必要注重的是,一个工具要存储在Application变量中,线程形式必需是Both;关于不满意该前提的工具,必需以其他体例,好比转换成数组的体例存储在Application变量中,这也是下面所说的将内容存储在数组中的缘故原由。
利用数字序列
在ASP程序中,从诸如RecordSet中读取数据时,为了便利,常利用数据库列名的体例举行:Response.writers(“fieldnameN”)

而很少接纳该数据库列名地点的数字序列来读取,即:
 
Response.writers(N)

实在,为了从RecordSet失掉列值,ADO必需将列名转化为数字序列,因而,若间接利用数字序列,则能够进步读取速率。若感到利用数字序列后,程序可读性不直不雅,能够接纳创建常量的办法,如界说:
 
constFIELDNAME11

如许就包管了程序的可读性和读取速率。
利用数据库历程
在电子商务站点中,特别是要举行买卖的站点,为了完成买卖,大概必要屡次查询大批的信息,用于判断长短,然后更新进库。若在编写ASP时,间接在一个程序中作屡次数据库操纵,不但IIS要创立良多的ADO工具,损耗大批资本,并且减轻了数据库服务器的包袱,增年夜了收集流量。若把屡次数据库操纵流程界说为一个数据库历程,用以下体例挪用:
connection.execute“{callprocedurename(..)}”
如许能够使用数据库的壮大功能,年夜年夜加重Web体系的压力,并且因为页面内容与营业分隔,办理保护也变得便利。
使用数据库的特征
ADO是一套通用的工具控件,自己没有益用数据库的任何特征。但如果在ASP程序编写时,无意识地思索分离数据库的特征,常常能够有很好的效果。
好比,Oracle数据库服务器关于实行过的SQL语句,一般都经由了剖析优化,并存储在一个SQL内存缓冲区中,当下次一样的SQL语句哀求时,间接从内存缓冲区掏出实行,不再举行剖析优化,从而能够年夜幅度进步功能。这就请求在ASP程序编写时,只管利用不异的SQL语句,大概参数化的SQL语句:
 
Setcmd=Server.createobject(“adodb.command”)
cmd.CommandText=”select*fromproductwhereproductcode=?”

用时创立用完开释
在后面也提到过,ADO工具长短常损耗资本的,因而必定要紧紧记着,只在用到ADO工具时才创立,用完后即刻开释,程序以下:
 
setrs=Server.createobject(“adodb.recordset”)
….
rs.close
setrs=nothing

利用优化过的SQL语句
关于电子商务网站,最次要的就是要包管不管会见用户的几,体系都要有充足快的呼应速率。因为在ASP手艺中,ADO工具损耗的资本长短常年夜的,若一个SQL语句要实行很长的一段工夫,对全部资本也将一向占用,使体系没有充足的资本服务于别的用户。因而,只管利用优化过的SQL语句,削减实行工夫。好比,不利用在in语句中包括子查询的语句,充实使用索引。
只需在我们的电子商务网站的建立中充实思索到效力成绩,并使用上述先容的办理办法,会极年夜地进步网站的呼应速率。


asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-23 18:02:59 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
深爱那片海 该用户已被删除
8#
发表于 2015-3-17 03:17:23 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
活着的死人 该用户已被删除
7#
发表于 2015-3-10 00:34:29 | 只看该作者
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
透明 该用户已被删除
6#
发表于 2015-2-28 15:34:55 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
莫相离 该用户已被删除
5#
发表于 2015-2-10 02:26:40 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
简单生活 该用户已被删除
地板
发表于 2015-2-4 15:09:52 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
第二个灵魂 该用户已被删除
板凳
 楼主| 发表于 2015-1-26 14:17:58 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
冷月葬花魂 该用户已被删除
沙发
发表于 2015-1-20 08:47:28 | 只看该作者
掌握asp的特性而且一定要知道为什么。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-21 03:34

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表