狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美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视频
日韩精品一级二级| 亚洲夜间福利| 韩国女主播成人在线观看| 亚洲无线码一区二区三区| 一区二区中文视频| 国产人久久人人人人爽| 久久精品欧美日韩| 欧美经典三级视频一区二区三区| 2020国产精品久久精品美国| 精品国精品自拍自在线| 欧美精品一区二区三区蜜臀| 久久综合九色综合97_久久久| 欧美一级日韩免费不卡| 欧美一区二区视频在线观看2020 | 亚洲九九爱视频| 亚洲欧美另类综合偷拍| 亚洲精品成人少妇| 亚洲小少妇裸体bbw| 日韩黄色在线观看| 精品一区二区在线免费观看| 国产一区视频在线看| 成人综合在线观看| 你懂的国产精品| 欧美日韩免费观看一区| 夜夜爽www精品| 色婷婷国产精品| 91精品婷婷国产综合久久性色| 日韩欧美一区二区免费| 国产欧美综合色| 一区二区三区免费| 麻豆91免费看| 成人av资源下载| 伊甸园精品99久久久久久| 麻豆av一区二区三区| 欧美日韩精品欧美日韩精品| 久久综合中文字幕| 亚洲一二三级电影| 国产真实乱对白精彩久久| 99re6这里只有精品视频在线观看| 狠狠色综合网站久久久久久久| 午夜一级久久| 91精品国产福利| 最新国产成人在线观看| 久久99国产精品久久| 91视频观看视频| 亚洲一区bb| 精品久久99ma| 夜夜亚洲天天久久| 高潮精品一区videoshd| 亚洲精品乱码久久久久久蜜桃麻豆| 久久综合九色99| 久久亚区不卡日本| 天堂蜜桃91精品| 91啦中文在线观看| 久久久久综合一区二区三区| 精品国产免费一区二区三区四区 | www精品美女久久久tv| 亚洲一区二区三区中文字幕在线| 国产精品1区2区| 夜夜嗨网站十八久久| 欧美大黄免费观看| 婷婷激情综合网| 你懂的国产精品| 欧美老人xxxx18| 亚洲激情一二三区| 不卡av电影在线播放| 久久三级福利| 综合亚洲深深色噜噜狠狠网站| 国产一区二区女| 亚洲一区二区三区四区中文 | 国产精品久久免费看| 国产一区福利在线| 中文精品视频| 国产精品午夜春色av| 国产精品亚洲午夜一区二区三区 | 一区二区久久| 中文字幕不卡在线播放| 欧美日韩国产影片| 亚洲国产精品人人做人人爽| 欧美~级网站不卡| 欧美一级淫片007| 日本不卡一区二区| 国产伦精品一区二区三区高清版| 国产婷婷色一区二区三区在线| 精品写真视频在线观看| 美女视频一区免费观看| 亚洲男同性恋视频| 欧美三级视频| xnxx国产精品| 成人免费视频视频在线观看免费 | 天堂成人国产精品一区| 亚洲日韩视频| 自拍偷自拍亚洲精品播放| 欧美在线资源| 久久男人中文字幕资源站| 欧美视频四区| 欧美激情一区二区三区在线| 99久久精品国产导航| 日韩欧美美女一区二区三区| 国产一区二区网址| 欧美日韩国产一区| 国产一区中文字幕| 欧美一区二区三区日韩| 国产精品 日产精品 欧美精品| 精品视频一区 二区 三区| 热久久免费视频| 欧美私模裸体表演在线观看| 麻豆91精品91久久久的内涵| 欧美四级电影网| 国产一区二区三区四区五区入口| 精品视频在线视频| 国内偷窥港台综合视频在线播放| 91久久精品国产91性色tv| 免费在线观看日韩欧美| 欧美欧美欧美欧美| 成人h精品动漫一区二区三区| 精品久久久久久久久久久久久久久久久 | 亚洲欧美清纯在线制服| 午夜久久久久久| 欧美性猛交一区二区三区精品| 麻豆91免费观看| 欧美巨大另类极品videosbest | 欧美一区午夜视频在线观看| 成人精品免费视频| 国产蜜臀97一区二区三区| 一区在线视频观看| 性做久久久久久免费观看| 欧洲av在线精品| av综合在线播放| 亚洲人吸女人奶水| 91激情在线视频| 大陆成人av片| 亚洲人成伊人成综合网小说| 一本久久a久久精品亚洲| 高清不卡一区二区在线| 亚洲天堂中文字幕| 在线观看日韩高清av| www.亚洲在线| 亚洲成人av一区| 日韩欧美亚洲一区二区| 亚洲欧洲日本国产| 国产精品一区在线观看你懂的| 国产欧美日本一区二区三区| 国产精品永久入口久久久| 国产精品一区二区三区99| 日韩一区在线看| 欧美性大战久久久久久久| 色综合网色综合| 午夜激情久久久| 久久久久99精品一区| 久久久久久久久久久久久久一区| 国产精品911| 精品区一区二区| 国内激情久久| 国产精品萝li| 欧美日韩精品一区二区三区蜜桃| 成人精品亚洲人成在线| 国产精品久久久久久久久久久免费看| 色老综合老女人久久久| 成人福利视频在线看| 亚洲乱码一区二区三区在线观看| 在线视频你懂得一区| 91亚洲国产成人精品一区二区三| 亚洲激情欧美激情| 7777精品伊人久久久大香线蕉超级流畅| 91视频国产观看| 天天操天天色综合| 综合欧美亚洲日本| 欧美日韩你懂的| 欧美人成在线| 久久国产精品免费| 国产精品久久久久久久久免费桃花| 亚洲专区一区二区三区| 丁香另类激情小说| 麻豆91在线看| 亚洲欧美日韩国产中文在线| 欧美一区二区久久久| 成人手机在线视频| 国内精品国产成人| 亚洲一级电影视频| 国产校园另类小说区| 91精品国产综合久久香蕉的特点| 精品动漫3d一区二区三区免费| 久久99蜜桃精品| 国产欧美日韩另类视频免费观看| 欧美精品一二三四| 香蕉精品999视频一区二区| www.欧美日韩国产在线| 国产成人啪免费观看软件| 亚洲夂夂婷婷色拍ww47| 久久久精品tv| 久久青青草综合| 久久av二区| 亚洲黄色天堂| av电影在线观看完整版一区二区| 麻豆精品在线播放| 亚洲一区自拍偷拍| 亚洲色图丝袜美腿| 日韩精品中文字幕在线不卡尤物 | 国产91露脸合集magnet|