狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當(dāng)前位置:系統(tǒng)之家 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

提高ASP性能的最佳選擇(續(xù)一)

提高ASP性能的最佳選擇(續(xù)一)

更新時(shí)間:2024-04-11 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

在本文的第一部分中,我回顧了有關(guān)ASP開發(fā)的一些基本問題,介紹了一些性能測(cè)試的結(jié)果,以理解我們放置在頁面中的代碼可能對(duì)運(yùn)行性能造成什么樣的影響。在這個(gè)系列的第二部分,我們將探討經(jīng)過論證的ASP最廣泛的用途,即通過ActiveX 數(shù)據(jù)對(duì)象(ADO)交互使用數(shù)據(jù)庫內(nèi)容。ADO是Microsoft通用并簡(jiǎn)單的數(shù)據(jù)庫界面。

  ADO有很多的功能設(shè)置,因此準(zhǔn)備這篇文章時(shí)最大的挑戰(zhàn)便是限制測(cè)試問題的范圍。考慮到讀取大數(shù)據(jù)集會(huì)為web 服務(wù)器施加很大的負(fù)載,我決定將研究的內(nèi)容局限在為使用ADO記錄集尋找最優(yōu)化配置的方面。但是這個(gè)限制還是提出了一個(gè)挑戰(zhàn),因?yàn)锳DO為執(zhí)行同一個(gè)功能提供了多種方式。比如說,記錄集可以從Recordset 類中恢復(fù),也可以從Connection和Command 類中恢復(fù)。另外,一旦你有了一個(gè)記錄集,那么有很多個(gè)選擇會(huì)戲劇性地影響性能。因此,同第一部分一樣,我將盡可能地多涉及一些具體問題。

目的
  我研究的目的是獲取足夠的信息以找到以下問題的答案:

  * 是否應(yīng)該使用ADOVBS.inc包含文件?

  * 當(dāng)使用一個(gè)記錄集時(shí),是否應(yīng)該創(chuàng)建一個(gè)單獨(dú)的Connection對(duì)象?

  * 恢復(fù)一個(gè)記錄集最好的方法是什么?

  * 指針和鎖的類型中,哪些是最有效的?

  * 是否應(yīng)該使用斷開的記錄集?

  * 設(shè)置記錄集(Recordset)屬性的最好方法是什么?

  * 引用記錄集中域值的最有效方法是什么?

  * 使用臨時(shí)字符串可以較好地代替緩沖器嗎?

測(cè)試是如何設(shè)立的?
  為進(jìn)行這項(xiàng)研究中的測(cè)試,我們共組裝了21個(gè)ASP頁面(包含在本文下載內(nèi)容中)。每個(gè)頁面都被配置成用3個(gè)不同的查詢返回記錄集運(yùn)行,這些記錄集中分別有0、25、250條記錄。這可以幫助我們將裝載記錄集的問題和在記錄集中循環(huán)上的性能問題隔離開。

  為滿足這些變化的條件,數(shù)據(jù)庫連接字符串和測(cè)試SQL字符串都作為應(yīng)用程序變量存儲(chǔ)在Global.asa中。因?yàn)槲覀兊臏y(cè)試數(shù)據(jù)庫是在Microsoft SQL Server 7.0上運(yùn)行的,因此我們的連接字符串指定OLEDB作為連接供應(yīng)者、Northwind 樣本數(shù)據(jù)庫(包含在SQL服務(wù)器中)作為當(dāng)前數(shù)據(jù)庫。SQL SELECT語句要求Northwind Orders 表格中的7個(gè)特定域。

  < SCRIPT LANGUAGE=VBScript RUNAT=Server >

  Sub Application_OnStart

  Application("Conn") = "Provider=SQLOLEDB; " & _

  "Server=MyServer; " & _

  "uid=sa; " & _

  "pwd=;" & _

  "DATABASE=northwind"

  Application("SQL") = "SELECT TOP 0 OrderID, " & _

  " CustomerID, " & _

  " EmployeeID, " & _

  " OrderDate, " & _

  " RequiredDate, " & _

  " ShippedDate, " & _

  " Freight " & _

  "FROM [Orders] "

  End Sub

  < /SCRIPT >

  'alternate sql ?25 records

  Application("SQL") = "SELECT TOP 25 OrderID, " & _

  " CustomerID, " & _

  " EmployeeID, " & _

  " OrderDate, " & _

  " RequiredDate, " & _

  " ShippedDate, " & _

  " Freight " & _

  "FROM [Orders] "

  'alternate sql ?250 records

  Application("SQL") = "SELECT TOP 250 OrderID, " & _

  " CustomerID, " & _

  " EmployeeID, " & _

  " OrderDate, " & _

  " RequiredDate, " & _

  " ShippedDate, " & _

  " Freight " & _

  "FROM [Orders] "

  我們的測(cè)試服務(wù)器是一個(gè)雙450 MHz Pentium ,512MB的RAM,在其上運(yùn)行著NT Server 4.0 SP5, MDAC 2.1 (數(shù)據(jù)訪問組件)以及Microsoft Scripting Engine的5.0版本。SQL服務(wù)器在一個(gè)同樣規(guī)格的單獨(dú)機(jī)器上運(yùn)行。同第一篇文章一樣,我使用Microsoft的Web應(yīng)用程序重點(diǎn)工具記錄從最初的頁面請(qǐng)求到傳輸最后一個(gè)字節(jié)(TTLB )的時(shí)間,精確到服務(wù)器上的毫秒級(jí)。這個(gè)測(cè)試腳本運(yùn)行20小時(shí),調(diào)用每個(gè)頁面1300次以上。顯示的時(shí)間是session的平均TTLB。要記住的是,同第一篇文章一樣,我們只是試圖涉及性能方面的問題,而非伸縮性和容量的問題。

  還請(qǐng)注意,我們?cè)诜⻊?wù)器上開啟了緩沖器。另外,我把所有的文件名都定為同樣長(zhǎng)度,因此文件名中就會(huì)有一個(gè)或多個(gè)下劃線來襯墊。

開始
  在第一個(gè)測(cè)試中,我們使用典型Microsoft ASP ADO 樣本文件中的典型場(chǎng)景來恢復(fù)一個(gè)簡(jiǎn)單的記錄集。在這個(gè)例子( ADO__01.asp )中,我們首先創(chuàng)建一個(gè)Connection對(duì)象,然后創(chuàng)建一個(gè)Recordset對(duì)象。當(dāng)然,我在腳本中進(jìn)行了一些修改,以反映在本系列的第一部分中涉及到的一些好的做法。

  < % Option Explicit % >

  < !-- #Include file="ADOVBS.INC" -- >

  < %

  Dim objConn

  Dim objRS

  Response.Write( _

  "< HTML >< HEAD >" & _

  "< TITLE >ADO Test< /TITLE >" & _

  "< /HEAD >< BODY >" _

  )

  Set objConn = Server.CreateObject("ADODB.Connection")

  objConn.Open Application("Conn")

  Set objRS = Server.CreateObject("ADODB.Recordset")

  objRS.ActiveConnection = objConn

  objRS.CursorType = adOpenForwardOnly

  objRS.LockType = adLockReadOnly

  objRS.Open Application("SQL")

  If objRS.EOF Then

  Response.Write("No Records Found")

  Else

  'write headings

  Response.Write( _

  "< TABLE BORDER=1 >" & _

  "< TR >" & _

  "< TH >OrderID< /TH >" & _

  "< TH >CustomerID< /TH >" & _

  "< TH >EmployeeID< /TH >" & _

  "< TH >OrderDate< /TH >" & _

  "< TH >RequiredDate< /TH >" & _

  "< TH >ShippedDate< /TH >" & _

  "< TH >Freight< /TH >" & _

  "< /TR >" _

  )

  'write data

  Do While Not objRS.EOF

  Response.Write( _

  "< TR >" & _

  "< TD >" & objRS("OrderID") & "< /TD >" & _

  "< TD >" & objRS("CustomerID") & "< /TD >" & _

  "< TD >" & objRS("EmployeeID") & "< /TD >" & _

  "< TD >" & objRS("OrderDate") & "< /TD >" & _

  "< TD >" & objRS("RequiredDate") & "< /TD >" & _

  "< TD >" & objRS("ShippedDate") & "< /TD >" & _

  "< TD >" & objRS("Freight") & "< /TD >" & _

  "< /TR > " _

  )

  objRS.MoveNext

  Loop

  Response.Write("< /TABLE >")

  End If

  objRS.Close

  objConn.Close

  Set objRS = Nothing

  Set objConn = Nothing

  Response.Write("< /BODY >< /HTML >")

  % >

  結(jié)果是這樣的:


  現(xiàn)在先來看看每一欄中的數(shù)字代表什么:

  0 代表運(yùn)行返回0個(gè)記錄的查詢時(shí)的TTLB,單位毫秒。在我們所有測(cè)試中,這個(gè)數(shù)字用來標(biāo)志頁面的負(fù)載或裝載頁面創(chuàng)建對(duì)象但不在數(shù)據(jù)中循環(huán)所用的時(shí)間。

  25 裝載并顯示25條記錄的TTLB(毫秒)。

  tot time/25 TTLB除以25條記錄(毫秒)。代表每條記錄的總平均時(shí)間。

  disp time/25 以毫秒計(jì)的TTLB減去“0”那欄的TTLB,并除以25條記錄。代表在記錄集中循環(huán)顯示每條記錄的時(shí)間。

  250 裝載并顯示250條記錄的TTLB(毫秒)。

  tot time/250 TTLB除以250條記錄(毫秒)。代表每條記錄的總平均時(shí)間。

  disp time/250 以毫秒計(jì)的TTLB減去“0”那欄的TTLB,并除以250條記錄。代表在記錄集中循環(huán)顯示每條記錄的時(shí)間。

  我們將用下面測(cè)試的結(jié)果與這些值相比較。

是否應(yīng)該使用ADOVBS.inc 包含文件?
  這個(gè)問題我想快點(diǎn)解決。Microsoft 提供的ADOVBS.inc 文件包含270行代碼,代表可以應(yīng)用于ADO屬性的大部分常量。我們的例子中只引用了這個(gè)文件中的2個(gè)常量。因此對(duì)于這個(gè)測(cè)試( ADO__02.asp ),我取消了包含文件的引用,并用屬性列舉中的實(shí)際數(shù)字代替了常量。

  objRS.CursorType = 0 ' adOpenForwardOnly

  objRS.LockType = 1 ' adLockReadOnly


  我們可以看到裝載時(shí)間減少了23%。這與每條記錄的顯示時(shí)間有定義上的不同,因?yàn)檫@種改變對(duì)于在記錄集中循環(huán)不應(yīng)該有影響。這個(gè)問題有幾種解決辦法。我建議使用ADOVBS.inc 文件作為參考,必要時(shí)使用注釋來注明數(shù)字。要記住,就如同在第一部分所闡明的一樣,注釋是不需要懼怕的,因?yàn)橹灰褂眠m度,它們不會(huì)給性能帶來大的影響。另一種方法是只從文件中將你所需要的常量復(fù)制到頁面中。

  解決這個(gè)問題有一個(gè)很酷的方法,通過將ADO類庫連接到你的應(yīng)用程序,使所有的ADO常量都可用。將以下代碼增加到你的Global.asa 文件,你就可以直接使用所有的常量。

  < !--METADATA TYPE="typelib"

  FILE="C:\Program Files\Common Files\SYSTEM\ADO\msado15.dll"

  NAME="ADODB Type Library" -- >

  或

  < !--METADATA TYPE="typelib"

  UUID="00000205-0000-0010-8000-00AA006D2EA4"

  NAME="ADODB Type Library" -- >

  所以,這里是我們的第一個(gè)規(guī)則:

  * 避免包含ADOVBS.inc文件,用其它方法來使用常量。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
蜜臀va亚洲va欧美va天堂 | 亚洲高清网站| 久久国产精品露脸对白| 综合电影一区二区三区 | 一区二区三区精品视频在线| 欧美二区在线观看| 亚洲国产高清视频| 国产精品自拍av| 亚洲国产成人高清精品| 91精品国产综合久久蜜臀| 国产亚洲精品v| 成人av动漫在线| 免费不卡在线观看| 亚洲永久免费av| 国产精品福利一区| 亚洲成人中文在线| 精品一区二区在线免费观看| 国产91精品一区二区麻豆网站 | 永久91嫩草亚洲精品人人| 99九九99九九九视频精品| 成av人片一区二区| 国产制服丝袜一区| 国精产品一区一区三区mba视频| 日韩精品久久理论片| 亚洲乱码国产乱码精品精98午夜| 久久久久久久久久久电影| 久久久久久久久97黄色工厂| 91精品国产综合久久久久久| 国产亚洲精品aa午夜观看| 伊人久久大香线蕉综合热线| 欧美日韩一区在线播放 | 91精品麻豆日日躁夜夜躁| 欧美tk丨vk视频| 亚洲精品精品亚洲| 激情综合色播激情啊| 午夜国产精品视频免费体验区| 国产一区成人| 日韩午夜av电影| 欧美电影免费观看高清完整版| 日韩精品中文字幕一区| 日本久久电影网| 91丝袜美腿高跟国产极品老师 | 欧美日韩影院| 欧美成人一区二区在线| 成人免费黄色大片| 国产一区激情在线| 精品亚洲免费视频| 国产激情一区二区三区四区| 国产jizzjizz一区二区| 国产成人亚洲综合a∨婷婷| 成人福利电影精品一区二区在线观看| 成人性生交大合| 狠狠入ady亚洲精品| av不卡免费看| 欧美日韩亚洲综合在线| 日韩视频一区二区三区 | 成人久久视频在线观看| 欧美一区亚洲二区| 伊伊综合在线| 欧美一级日韩免费不卡| 久久久不卡影院| 五月婷婷久久综合| 蜜臀久久久久久久| 国产精品高潮呻吟| 久久伊99综合婷婷久久伊| 国产偷国产偷亚洲高清人白洁 | 一区在线电影| 亚洲欧美国产毛片在线| 免费在线成人网| 日韩美女啊v在线免费观看| 91精品欧美一区二区三区综合在| 国产精品久久久久久久久久直播| 欧美在线3区| 成人永久看片免费视频天堂| 蜜臀99久久精品久久久久久软件| 夜夜夜精品看看| 国产精品蜜臀av| 精品国产91亚洲一区二区三区婷婷| 在线观看av一区| 久久精品国产第一区二区三区最新章节 | 国内精品久久久久影院薰衣草| 亚洲国产精品视频| 亚洲日本韩国一区| 中文字幕欧美激情| 久久久亚洲高清| 日韩欧美一区二区在线视频| 欧美日韩一区二区在线观看视频 | 欧美日韩国产综合视频在线观看| 久久精品1区| 国产精品一区二区三区观看| 伊人精品成人久久综合软件| 欧美一区91| 99re热这里只有精品视频| 国产一区二区剧情av在线| 久久精品国产在热久久| 日本美女视频一区二区| 午夜精品福利一区二区三区av| 亚洲一线二线三线久久久| 亚洲欧美另类小说视频| |精品福利一区二区三区| 国产精品久久一卡二卡| 欧美激情一区二区三区全黄| 色屁屁一区二区| 久久久久久国产精品mv| 久久国产一区| 日本乱码高清不卡字幕| 色欧美乱欧美15图片| 在线精品视频一区二区三四| 欧洲亚洲精品在线| 精品视频在线看| 制服丝袜国产精品| 91麻豆精品91久久久久久清纯| 欧美人xxxx| 精品毛片乱码1区2区3区| 2023国产精华国产精品| 国产欧美日产一区| 国产精品二区一区二区aⅴ污介绍| 国产精品护士白丝一区av| 亚洲品质自拍视频| 亚洲小少妇裸体bbw| 日韩电影网1区2区| 麻豆成人久久精品二区三区红| 韩国毛片一区二区三区| 国产不卡在线一区| 91丨九色丨蝌蚪富婆spa| 伊甸园精品99久久久久久| 国产欧美日韩在线播放| 色综合久久久久综合| 欧美日韩极品在线观看一区| 欧美电影免费观看高清完整版在线观看| 亚洲精品一线二线三线| 国产精品免费网站在线观看| 亚洲黄一区二区三区| 日韩福利电影在线观看| 午夜精品美女久久久久av福利| 亚洲精品久久嫩草网站秘色| 午夜伦理一区二区| 韩国在线一区二区| 91免费版pro下载短视频| 一区视频在线看| 色一区在线观看| 日韩精品资源二区在线| 亚洲丝袜自拍清纯另类| 日本vs亚洲vs韩国一区三区二区| 国产精品系列在线播放| 合欧美一区二区三区| 久久在线91| 欧美成人一区二区三区片免费| 中文字幕中文字幕在线一区| 亚洲成人精品一区| 国产成人欧美日韩在线电影| 国产精品igao视频网网址不卡日韩| 亚洲免费一区二区| 日韩一区二区三区观看| 亚洲人被黑人高潮完整版| 精品一区二区三区久久久| 欧美日韩天天操| 色丁香久综合在线久综合在线观看| 精品国产免费人成电影在线观看四季 | 国产日韩精品一区二区三区| 亚洲成国产人片在线观看| 岛国一区二区三区| 亚洲美女黄网| 91精品国产综合久久精品app| 成人欧美一区二区三区白人| 精品一区二区三区在线视频| 狠狠入ady亚洲精品经典电影| 欧美性xxxxx极品少妇| 亚洲国产精品精华液ab| 久久精品国产在热久久| 欧美日韩一区二区国产| 欧美色视频一区| 自拍偷在线精品自拍偷无码专区| 久久99久久99| 亚洲欧洲另类| 日韩免费观看高清完整版| 亚洲国产美女搞黄色| 99久久精品国产一区| 91国内精品野花午夜精品| 国产精品福利一区| 国产成人精品午夜视频免费| 翔田千里一区二区| 欧美精品一区二区三区高清aⅴ | 影音欧美亚洲| 精品国产免费一区二区三区香蕉| 天天av天天翘天天综合网色鬼国产| 91在线观看免费视频| 欧美日韩一区二区在线视频| 亚洲自拍都市欧美小说| 91视频免费播放| 在线播放日韩导航| 三级成人在线视频| 亚洲电影在线| 久久精品一区四区| 国产精品亚洲视频| 色偷偷一区二区三区| 一区二区三区四区乱视频| 欧美日韩精品一区| 2020国产精品久久精品美国| 国产精品一区二区久激情瑜伽|