📄 0045.htm
字号:
这样,ASP将不再检查session信息。<br>
<br>
如果你不得不依赖于session状态,应该避免在session对象中存放大量的数据。IIS中的session在<br>
客户端的HTTP cookie可用的时候就会保持,导致被session占用的内存在session 终止或超时前一直被<br>
占用。这样,如果很多用户同时使用你的程序的时候,你的服务器资源可能会耗尽。<br>
<br>
数据库访问<br>
数据库访问是必须的麻烦?访问数据库将会激烈地减慢你的程序,但很显然,如果没有数据库,很<br>
多站点将变得毫无价值可言。但通过存储过程访问数据库来代替使用嵌入式Sql 语句,你可以提升潜在<br>
的性能。通过使用存储过程和ActiveX Data Objects (ADO),它们亦同样拥有良好的灵活性。尽可能从<br>
存储过程来输出数据。<br>
<br>
确认你的数据库具有索引,因为这样能直接提高你的程序的效率。同样,尽量在你的数据库服务器<br>
运行更新统计(Update Statistics) 以帮助追踪你的数据分发,这样,你的数据库就能够基于这些信息<br>
来改造查询执行。注意一些数据库比如MS Access,是不是真正能在企业级程序中接受?SQL Sever 7.0<br>
或者Oracle是一个更好的赌注。<br>
让SQL象它被设计的那样工作,它能count(统计),连接(join),排序(sort)和group 数据。当你能<br>
够写出一个查询语句来做这些东西的时候,就不要自己用其它语言来实现。<br>
下面是一个统计所有列的最简单的语法:<br>
<br>
SELECT count(*) FROM publishers WHERE state='NY'<br>
<br>
如果你统计一个指定的列,你必须使用group by语句来分组该列,否则它不会工作:<br>
<br>
SELECT count(city),city FROM publishers GROUP BY city<br>
<br>
分类返回的数据:<br>
<br>
SELECT * FROM TableName WHERE FieldName>50 OR FieldName<100 ORDER BY FieldName2, Field<br>
Name3 <br>
<br>
使用Odbc还是文件DSN连接数据库?使用快速的OLEDB Provider技术连接你的数据库而不是使用DSN<br>
连接。不再需要恳求你的ISP(或数据库管理员/网管)为你建立一个系统DSN,当你移走Web文件的时候,<br>
亦不需要改变配置。<br>
<br>
OLEDB 介于ODBC层和应用程序之间。在你的ASP 页面中,ADO介于ODEDB之上的“应用程序”。你的<br>
ADO调用首先被送到OLEDB,接着被送到ODBC层。然而,你可以直接连接到OLEDB 层,并且如果你这样做<br>
的话,你就能看到服务器端性能的提高。然而,怎样直接连接到OLEDB?<br>
如果你使用SQLServer 7,使用下面的连接代码连接数据库:<br>
<br>
strConnString = "DSN='';DRIVER={SQL SERVER};" & _ <br>
"UID=myuid;PWD=mypwd;" & _ <br>
"DATABASE=MyDb;SERVER=MyServer;" <br>
<br>
最重要的参数是DRIVER=部分。如果你要绕过ODBC而使用通过使用OLEDB 连接SQL Server(这是更快<br>
的连接),请使用下面的语法:<br>
<br>
strConnString ="Provider=SQLOLEDB.1;Password=mypassword;" & _ <br>
"Persist Security Info=True;User ID=myuid;" & _ <br>
"Initial Catalog=mydbname;" & _ <br>
"Data Source=myserver;Connect Timeout=15" <br>
<br>
有什么不对的地方吗?<br>
现在你可能会觉得有点奇怪:我们在这个新的连接方法中的要点是什么呢?为什么不使用标准DSN-<br>
less/System DSN途径?呵,根据Wrox 在他的著作《ADO 2.0 Programmer's Reference》中测试的结果<br>
表明,如果你使用OLEDB连接和DSN或者DSN-less连接方法比较,你会发现有下面的改进:<br>
<br>
性能对比:<br>
SQL Access <br>
OLEDB DSN OLEDB DSN <br>
连接时间: 18 82 连接时间: 62 99 <br>
查询1,000条记录时间:2900 5400 查询1,000条记录时间: 100 950 <br>
<br>
注释:这个结果在Wrox的《ADO 2.0 Programmer's Reference》一书的第232和233页可以查到。时<br>
间的单位是毫秒,查询1,000记录时间是通过服务器端游标计算出来的(当使用客户端游标的时候,OLED<br>
B与DSN记录集的性能之间的差别不大)。<br>
<br>
ASP译码问题:<br>
尽可能在客户端确认用户输入来减少HTTP来回请求的数量。如果浏览器有支持JavaScript或其它脚<br>
本的能力,使用它们的力量以释放更多的服务器资源。<br>
下面的VBScript运行于客户端浏览器,在提交到你的服务器之前,用来验证用户信息:<br>
<br>
<SCRIPT LANGUAGE="VBScript"><br>
<!--<br>
Sub btnEnter_OnClick<br>
Dim TheForm<br>
Set TheForm = Document.MyForm<br>
If IsNumeric(TheForm.Age.Value) Then <br>
TheForm.submit<br>
Else<br>
Msgbox "Please enter a numerical age."<br>
End if<br>
End Sub<br>
//--><br>
</SCRIPT><br>
<br>
<FORM method="POST" name=MyForm action="myfile.asp"> <br>
Name: <INPUT typr="text" name="Name"><br>
Age: <INPUT type="text" name="Age"><br>
<INPUT type="button" name="btnEnter" value="Enter"><br>
</FORM><br>
<br>
使用局部变量,避免使用全局变量。局部变量比全局变量更快地被Asp 脚本引擎存取,因为不需搜<br>
索整个名称域。避免改变数组定义。在第一次初始化的时候就简单分配足够的大小效率更高。在这种情<br>
况下,你可能会浪费一些内存,但你获得了速度的优势。在服务器负载重的时候这个技术是显然易见有<br>
效的。<br>
<br>
如果你需要引用不一定要用到的对象,那么最好使用<OBJECT>标记而不是用 Server.CreateObject<br>
方法。 使用Server.CreateObject引起对象立即被建立,反之,<OBJECT>标记则不会这样立即建立对象<br>
如果使用<object>定义后不使用该对象,你不会浪费资源。<br>
<br>
例如:下面的例子是一个使用<OBJECT>标记建立一个application-scope广告轮 Ad Rotator对象实<br>
例:<br>
<br>
<OBJECT runat=server scope=Application id=MyAds progid="MSWC.AdRotator"><br>
</OBJECT><br>
<br>
在存储该Ad Rotator对象进Application后,你可以在任何程序的页面中用下面的语法访问该对象<br>
<br>
<%=MyAds.GetAdvertisement("CustomerAds.txt") %><br>
<br>
打开'Option Explicit'开关。在VB和VBScript 中,你可以在没有显式声明的情况下使用变量。但<br>
打开这个选项可以鉴别用定义变量,这样可以很好地书写变量,并能帮助提高性能。未定义的局部变量<br>
会变慢,因为在建立它之前,名称空间必须被搜遍后才知道变量是否存在。摆脱它,使每个变量清楚地<br>
定义(先定义后使用)。<br>
<br>
这是一个好习惯,it may trap typos, 这样更快。<br>
<br>
<br>
除非你真正需要使用,否而不要使用Server.MapPath方法。如果你知道真实路径就使用真实路径。<br>
使用MapPath需要IIS找回现时服务器路径,这意味着得向服务器发一个特殊的请求,也就意味着降低了<br>
性能。另一个方法是将路径存放到局部变量中,在需要的时候使用,这样就不需要服务器多次查找。<br>
<br>
检查你自己是怎么做的<br>
你可以通过工具来测量你的系统性能,比如系统性能监视器,NetMon和PerfMon。测试web性能可以<br>
用WCAT (Web Capacity Analysis Tool)。使用WCAT,你可以测试你的IIS服务器和网络配置响应各种各<br>
样的客户请求,数据或HTML页面的能力。这些测试结果能够被用来作为优化你的服务器和网络配置的指<br>
导。WCAT是专门设计用来估计Windows 2000中的因特网服务(或Windows NT)和IIS 能响应的客户工作量<br>
(仿真)。为了得到更多的信息,请参阅IIS Resource Kit(资源工具包)。那里也有冗长的WCAT用户指南<br>
在MSDN在线Web sorkshop站点里面有一个下载链接。如果你认真对待你的Asp 性能的话,务必取得该工<br>
具。<br>
<br>
力求最优化应用程序性能,你的web 应用程序会运行更加顺畅。如果不是真正需要,就不要影响服<br>
务器的性能。<br>
<br>
摘要:<br>
上面介绍了有关ASP性能的资料,有很多因素影响Asp的性能,这里只讨论了其中的一部分。作为最<br>
终的想法,不要认为你能够处理好所有的因素,你的ASP 性能还是有必要提高的。你发布的每个应用程<br>
序必须个别进行考虑,所有以上的技巧并不是适合每个Asp程序。<br>
<br>
<br>
This page is over.<br>
由软件使用主页整理创作,如要引用,请指明出处,多谢
</table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -