加入收藏 | 设为首页 | 会员中心 | 我要投稿 南平站长网 (https://www.0599zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

优化Asp措施的机能

发布时间:2016-10-30 11:13:35 所属栏目:Asp教程 来源:站长网
导读:副标题#e# ASP 能快速执行你的动态网页,但你还可以通过紧缩代码和数据库连接以使它们执行更快。这是一篇关于怎样精简代码和Asp 特征以获得最快执行速度的详细文章。对于一个急燥的用户来说,任何在按下用户按钮到结果出现在它们的屏幕之间的延迟可能意味着

数据库访问

数据库访问是必须的麻烦?访问数据库将会激烈地减慢你的程序,但很显然,如果没有数据库,很多站点将变得毫无价值可言。但通过存储过程访问数据库来代替使用嵌入式Sql 语句,你可以提升潜在的性能。通过使用存储过程和ActiveX Data Objects (ADO),它们亦同样拥有良好的灵活性。尽可能从存储过程来输出数据。

确认你的数据库具有索引,因为这样能直接提高你的程序的效率。同样,尽量在你的数据库服务器运行更新统计(Update Statistics) 以帮助追踪你的数据分发,这样,你的数据库就能够基于这些信息来改造查询执行。注意一些数据库比如MS Access,是不是真正能在企业级程序中接受?SQL Sever 7.0或者Oracle是一个更好的赌注。

让SQL象它被设计的那样工作,它能count(统计),连接(join),排序(sort)和group 数据。当你能够写出一个查询语句来做这些东西的时候,就不要自己用其它语言来实现。

下面是一个统计所有列的最简单的语法:

SELECT count(*) FROM publishers WHERE state='NY'

如果你统计一个指定的列,你必须使用group by语句来分组该列,否则它不会工作:

SELECT count(city),city FROM publishers GROUP BY city

分类返回的数据:

SELECT * FROM TableName WHERE FieldName>50 OR FieldName<100 ORDER BY FieldName2, Field Name3

使用Odbc还是文件DSN连接数据库?使用快速的OLEDB Provider技术连接你的数据库而不是使用DSN连接。不再需要恳求你的ISP(或数据库管理员/网管)为你建立一个系统DSN,当你移走Web文件的时候,亦不需要改变配置。

OLEDB 介于ODBC层和应用程序之间。在你的ASP 页面中,ADO介于ODEDB之上的“应用程序”。你的ADO调用首先被送到OLEDB,接着被送到ODBC层。然而,你可以直接连接到OLEDB 层,并且如果你这样做的话,你就能看到服务器端性能的提高。然而,怎样直接连接到OLEDB?

如果你使用SQLServer 7,使用下面的连接代码连接数据库:

strConnString = "DSN='';DRIVER={SQL SERVER};" & _
"UID=myuid;PWD=mypwd;" & _
"DATABASE=MyDb;SERVER=MyServer;"

最重要的参数是DRIVER=部分。如果你要绕过ODBC而使用通过使用OLEDB 连接SQL Server(这是更快的连接),请使用下面的语法:

strConnString ="Provider=SQLOLEDB.1;Password=mypassword;" & _
"Persist Security Info=True;User ID=myuid;" & _
"Initial Catalog=mydbname;" & _
"Data Source=myserver;Connect Timeout=15"

有什么不对的地方吗?

现在你可能会觉得有点奇怪:我们在这个新的连接方法中的要点是什么呢?为什么不使用标准DSN-less/System DSN途径?呵,根据Wrox 在他的著作《ADO 2.0 Programmer's Reference》中测试的结果表明,如果你使用OLEDB连接和DSN或者DSN-less连接方法比较,你会发现有下面的改进:

性能对比:

SQL Access

OLEDBDSNOLEDBDSN

连接时间:18?82?连接时间:62?99

查询1,000条记录时间:29005400查询1,000条记录时间: 100950

注释:这个结果在Wrox的《ADO 2.0 Programmer's Reference》一书的第232和233页可以查到。时间的单位是毫秒,查询1,000记录时间是通过服务器端游标计算出来的(当使用客户端游标的时候,OLEDB与DSN记录集的性能之间的差别不大)。

(编辑:南平站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读