据的变化,我们可以在ASP页面中调用Update脚本。这样,每当数据库内容改变时服务器上也有了最新的静态HTML页面。
另一种处理频繁变动数据的办法是借助Microsft SQL Server 7.0的Web助手向导(Web Assistant Wizard),这个向导能够利用Transact-SQL、存储过程等从SQL Server数据生成标准的HTML文件。
利用SQL Server任务,Web助手向导能够用来定期地生成HTML页面。正如前面概要介绍的方案, Web助手可以通过触发子更新HTML页面,比如在指定的时间执行更新或者在数据库数据变化时执行更新。 本文来自无涯教程网:http://www.wuyapc.com SQL Server使用名为sp_makewebtask的存储过程创建HTML页面,它的参数是目标HTML文件的名字和待执行存储过程的名字,查询的输出发 送到HTML页面。另外,也可以选择使用可供结果数据插入的模板文件。 从前面的代码可以看出,当ASP页面HtmlMain.asp需要更新时,控制以ASP文件的物理路径为参数转到了Update页面。Update脚本的 任务是用新的HTML数据刷新发出调用的ASP文件,并把调度ASP代码加入到文件的开头。为此,Update脚本打开调度模板文件,拷贝调度ASP代 码,然后控制转到了另一部分脚本,这部分脚本主要任务是执行数据库操作。Update用路径参数以写模式打开HtmlMain.asp文件,数据库操作的 输出以HTML格式写入这个文件。 万一用户访问页面的时候正好在执行更新,我们可以利用锁或者其他类似的机制把页面延迟几秒钟。 HtmlMain.asp(纯HTML加调度ASP代码)和main.asp(普通的ASP文件)在WAS下进行了性能测试。main.asp文件要查找 5个不同的表为页面提取数据。为了和这两个文件相比较,一个只访问单个表的ASP页面(SingleTableTest.asp)和一个纯HTML文件 (PlainHtml.html)也进行了测试。 测试结果如下表所示:
文件名字 命中数 平均TTFB(ms) 平均TTLB
(ms) PlainHtml.html SingleTableTest.asp Main.asp HtmlMain.asp
其中TTFB是指Total Time to First Byte,TTLB是指Total Time to Last Byte。 这些测试在一台Windows NT Workstation 4.0 SP6 运行Personal Web Server的机器上实施。为了使性能指标更明显,带宽限制到了14.4 K。在实际环境中数值变化可能很大,但这个结果精确地反映了各个页面在性能上的差异。
测试结果显示访问单个表的ASP页面的处理时间是 720.5ms,而纯HTML文件则为427ms。Main.asp和HtmlMain.asp的输出时间相同,但它们的处理时间分别为 3633.67ms和1590ms。也就是说,在这个测试环境下我们可以把处理速度提高43%。 如果我们要让页面每隔一定的访问次数更新,比如100次,那么这第100个用户就必须等待新的HTML页面生成。不过,这个代价或许不算太高,其他99个用户获得了好处。 静态页面方法并不能够适合所有类型的页面。例如,某些页面在进行任何处理之前必须要有用户输入。但是,这种方法可以成功地应用到那些不依赖用户输入却进行大量数据库调用的页面,而且这种情况下它将发挥出更大的效率。
在大多数情况下,动态页面的生成将在相当大的程度上提高网站的性能而且无需在功能上有所折衷。虽然有许多大的网站采用了这个策略来改善性能,也有许多网站完全由于进行大量没有必要的数据库调用而表现出很差的性能。
8 8 9 9 47 68.88 125.89 149.89 474 789.38 3759.56 1739.89
Microsoft的WAS是一个功能非常丰富的服务器性能测试工具,可以帮助我们准确地判断什么方案将适合于提升网站性能;是否某个方案(比如本文第二部分的静态页面方案)能够显著地改善性能。
本文对WAS的介绍应当说是相当粗略和肤浅的。WAS还提供了一个对象模型,我们可以通过脚本扩展它的功能。访问
http://webtool.rte.microsoft.com/?ObjModel/default.htm可以看到一个脚本示例。这个脚本将登记Web服务器的每秒最大请求数量,自动地增加Stress Level值直到服务器处理器利用率达到90%为止。
WAS能够为你提供有关ASP应用和它所运行的硬件的丰富的信息。在WAS上花费一些时间,你就能够更深入地了解你的应用的性能、稳定性、瓶颈和局限性。花费这种时间是值得的。