999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ASP.NET數據層的優化方法

2009-04-29 00:00:00李秦,竇小雨
電腦知識與技術 2009年14期

摘要:目前中國很多站點都采用了ASP.NET技術為用戶提供各類服務。提高Web的響應速度、建立高性能的站點,很大一部分取決于ASP.NET應用程序的性能,因此對ASP.NET應用程序的性能優化至關重要。該文介紹了一些優化ASP.NET數據層的方法。

關鍵詞:ASP.NET;數據層;Web應用程序

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2009)14-3596-01

Methods of Optimizing Data Layer of ASP.NET

LI Qin, DOU Xiao-yu

(Shanxi Technical Collage of Finance and Economics, Xianyang 712000, China)

Abstract: Recently a lot of Websites use ASP.NET technology to provide consumers various services in China. To improve the Web response speed and build high performance Website, a large part of it depends on the performance of ASP.NET application, so it's vital to optimize it. This article presents some methods to optimize data layer of ASP.NET.

Key words: ASP.NET; data layer; Web application

1 引言

用ASP.NET編寫Web應用程序其輕松程度令人難以置信。它是如此的容易,以至于許多開發人員不用花費多少時間來構筑其應用便能獲得非常好的性能。

因為數據庫通常都用專門的硬件,而且ASP.NET使用代碼和層之間的邊界分離,使用Web服務或遠程調用將降低20%以上的性能。因此數據庫的處理成本仍然很高,因此最優化代碼時,數據層的性能應該是首當其充要關注的地方。

當調整某個應用程序的性能時,你可以用它按先后次序:檢查代碼是否存取數據庫?如果是,多長時間存取一次?注意相同的測試也可以被應用于使用Web服務或遠程調用的代碼。

如果在特定的代碼流程中必須具有對數據庫的請求以及要考察其它方面,如:想對字符串處理進行優先優化,那么暫且把它放一放,先按照上面定好的優先次序來做。除非你有異乎尋常的性能問題,否則你的時間應該用在嘗試最優化與數據庫的連接所花的時間,返回的數據量以及多長時間往返一次和數據庫的通訊上。

有了這些概括信息,下面就看看能幫助改善ASP.NET應用程序數據層性能的方法。下面將從能獲得最顯著效果的改變開始。

2 具體優化方法

2.1 使用連接池

在實際應用開發中,特別是在Web應用系統中,直接訪問數據庫中的數據,每一次數據訪問請求都必須經歷建立數據庫連接、打開數據庫、存取數據和關閉數據庫連接等步驟,而連接并打開數據庫是一件既消耗資源又費時的工作,如果頻繁發生這種數據庫操作,系統的性能必然會急劇下降,甚至會導致系統崩潰。數據庫連接池技術是解決這個問題最常用的方法,在許多應用程序服務器中,基本都提供了這項技術,無需自己編程,但是,深入了解這項技術是非常必要的。

建立Web應用程序與SQL Server之間的TCP連接是一項開銷非常大的操作。微軟的開發人員利用連接池技術已經有好長一段時間了,這個技術使他們能重用到數據庫的連接。而不是每次請求都建立新的TCP連接,新連接僅在連接池中得不到連接時才建立。當連接被關閉時,它被返回到連接池中,在那里它仍然保持與數據庫的連接,與完全斷開TCP連接相反。

為了充分用好連接池,有幾條規則必須了然于心。首先,打開連接,進行處理,然后關閉連接。寧愿每個請求的連接打開和關閉多次,也不要保持連接打開狀態以及在不同的方法間將它傳來傳去。其次,使用相同的連接串(如果使用集成身份檢查,那么也要用相同的線程身份)。如果不用相同的連接串,例如,根據登錄用戶來定制連接串,你將無法得到連接池所提供的相同的最優化值。當模擬大用戶量情形時,如果你使用集成身份檢查,那么你的連接池將效力大減。

不管什么時候,只要Web應用程序連接到運行在其它進程中的資源,比如某個數據庫,你都應該針對連接到資源所耗時間,發送和接收數據所耗時間以及往返次數進行優化。為了實現較好的性能,應該首當其充優化應用程序中任何種類的忙碌進程。

2.2 使用ASP.NET Cache API

在編寫代碼之前要做的頭等大事之一是最大限度地構建應用層并發掘ASP.NET的Cache特性。

如果的組件在ASP.NET 應用程序內運行,那么你只需要在應用程序工程中引用 System.Web.dll即可。當你需要訪問Cache時,用HttpRuntime.Cache屬性(相同的對象也可以通過Page.Cache和HttpContext.Cache訪問)。

緩沖數據有幾個準則。首先,如果數據能被使用多次,緩沖是個好的后選方案。其次,如果數據對給定請求或用戶是一般的數據而非專用數據,那么最好是選擇緩沖。如果數據用戶或請求專用,如果需要保存期很長但可能不被經常使用,那么仍然要用緩沖。第三,常常被忽略的一個準則是有時緩沖太多的東西。一般來說,在x86機器上,為了降低內存不足錯誤的幾率,運行某個進程不要超過800MB私有字節。因此,緩沖應該有個上限。

Cache有幾個重要特性是必須要了解的。第一個是Cache實現了最近最少使用(least-recently-used)算法,允許ASP.NET強制Cache清除操作,即如果可用內存下降到低水平,則自動從Cache中刪除不使用的項目。第二個是Cache支持依賴性和到期特性,它能強制包括時間,鍵值,文件失效。時間常常被使用,但ASP.NET 2.0引入了具有更強大的失效類型:數據庫緩沖失效。也就是當數據庫中的數據改變時,緩沖中的條目會自動刪除。

2.3 使用預請求緩沖

由于Cache API被設計用來緩沖長期數據或直到某個條件被滿足,預請求緩沖意旨用于請求期間的緩沖該數據。特定的代碼流程被每次請求頻繁訪問但是數據只需要被拾取、應用、修改或更新一次,這樣說太理論化,還是看一個具體的例子吧。

在架設網站論壇應用中,某個頁面上使用的每個服務器控件需要個性化數據以確定使用那個皮膚和式樣頁,以及其它的個性化數據,其中有些數據可以被長時間緩沖,但有些數據,比如用于控件的皮膚在單個請求中只被拾取一次并在該請求執行期間被重用多次。

為了完成預請求緩沖,用ASP.NET HttpContext。HttpContext的實例是隨每個請求創建的,并可以通過HttpContext.Current屬性在那個請求執行期間的任何地方存取它。HttpContext 類具有一個特別的Items集合屬性,被添加到該Items集合的對象和數據只是在該請求期間被緩存。就像可以使用Cache來保存頻繁使用的數據一樣,可以用HttpContext.Items來保存只在某個預請求中使用的數據。在此背景后的邏輯很簡單:當數據不存在時被添加到 HttpContext.Items集合,以及在隨后的并發查找中簡單地返回HttpContext.Items中發現的數據。

3 結論

該文所描述的性能改進有兩種類型:大型優化,如使用連接池和ASP.NET Cache API,以及進行微型優化,如使用預請求緩沖。這些微型優化有時很有意義,它對代碼的小小改動便會引起很大的動靜,產生成千次的調用。對于大型優化,可能會看到整體性能的大跳躍。而對微型優化,給定請求可能只是毫秒級的調整,但按每天的請求總數計算,其結果的改進可能是巨大的。

參考文獻:

[1] 鄧文淵,陳惠貞,陳俊榮.ASP與網頁數據庫設計[M].北京:中國鐵道出版社,2004.

[2] 劉宏峰,陳江波.ASP網絡開發技術大全[M].北京:人民郵電出版社,2001.

[3] Hasan, Jeffrey Tu, Kenneth.Performance Tuning and Optimization for Asp.Net Applications.[M].Addison Wesley Longman 2002.

[4] 宣小平,但正剛,張文毅.ASP數據庫系統開發實例導航[M].北京:人民郵電出版社,2003.

主站蜘蛛池模板: 99伊人精品| 色婷婷色丁香| 无码免费视频| 欧美精品不卡| 又黄又湿又爽的视频| 黄色福利在线| 欧美精品1区2区| 国产精品一区在线观看你懂的| 夜夜爽免费视频| 激情网址在线观看| 国产无遮挡猛进猛出免费软件| 亚洲天堂网在线观看视频| 美女国内精品自产拍在线播放 | 国产精鲁鲁网在线视频| 99久久精彩视频| 中文字幕无线码一区| 国产成人综合日韩精品无码不卡| 亚洲日韩国产精品综合在线观看| 波多野结衣一区二区三区四区视频| 国产成人精品在线| 丝袜亚洲综合| 亚洲国产中文综合专区在| 2021国产乱人伦在线播放| 免费av一区二区三区在线| 91精品国产综合久久香蕉922| 亚洲精品不卡午夜精品| 2022国产无码在线| 亚洲视频三级| 国产在线高清一级毛片| 国产在线小视频| 欧美高清国产| 国产精品香蕉在线| 无码乱人伦一区二区亚洲一| 国产免费网址| 国产欧美日韩在线在线不卡视频| 福利在线不卡| 九九香蕉视频| 精品国产女同疯狂摩擦2| 四虎综合网| 欧洲av毛片| 日日拍夜夜操| 99精品视频在线观看免费播放| 国产国语一级毛片在线视频| 国产精品久久久久久久久久98 | 99这里只有精品在线| 亚洲精品国产精品乱码不卞| 污污网站在线观看| 亚洲欧洲自拍拍偷午夜色| 谁有在线观看日韩亚洲最新视频 | 亚洲欧美另类专区| 精品国产自在现线看久久| 国产精品久久久久久久久| 国产亚洲欧美在线专区| 中文字幕在线免费看| 无码网站免费观看| 国产成人一区二区| 亚洲国产高清精品线久久| 国产成人高清精品免费5388| 亚洲成人在线网| 国产一区二区网站| 久久精品只有这里有| 日本黄色不卡视频| 亚洲日本在线免费观看| 国产精品尤物铁牛tv| 欧美福利在线| 狠狠色成人综合首页| 国产亚洲高清视频| av一区二区无码在线| 中文字幕永久在线看| 99久久精品免费看国产电影| 欧美日韩中文国产va另类| 老司国产精品视频| 欧美一级高清片欧美国产欧美| 五月婷婷精品| 欧美久久网| 亚洲综合网在线观看| 国产9191精品免费观看| 激情乱人伦| 一级香蕉人体视频| 亚洲AV无码乱码在线观看裸奔| 亚洲AⅤ无码国产精品| 久久综合九色综合97婷婷|