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

ASP.NET網站的系統架構和性能優化的探討

2015-01-29 02:57:34吳小欣
電子設計工程 2015年9期
關鍵詞:頁面數據庫優化

吳小欣

(91550部隊 遼寧 大連 116023)

ASP.NET技術經過不斷的發展,逐漸趨于成熟,在微軟.NET平臺上使用Visual Studio工具開發的ASP.NET,門戶網站為越來越多的企業使用,能夠獲得比較完善的功能和美觀的網頁,但是最重要的還是能夠對大量用戶的請求快速響應,尤其是大型企業的門戶網站點擊量非常高,對網站的運維工作帶來了很大的困難,網站想要獲得較高的相應速度,就需要對網站的系統架構和性能進行優化,才能提高滿足用戶對訪問速度的要求。

1 ASP.NET優化思路

系統架構是系統在獨立邏輯層中對功能部分的垂直分解,邏輯層能夠和相鄰的邏輯層進行數據通訊,對于ASP.NET網站來說,三層結構是最常見的結構形式:

1)表示層 負責實現用戶和網站直接的交互,動態Web頁面是最常見的形式。

2)業務層 采集表示層獲得的用戶輸入數據,進行處理并調用數據層,將業務結果反饋給表示層[2]。

3)數據層 主要用于進行數據保存和系統維護。

三層結構是一種最常見的網絡系統架構形式,有著較高的性能和靈活性,維護方便,可拓展性強,其數據請求過程如圖1所示。

圖1 ASP.NET數據請求流程Fig.1 ASP.NET data request process

網站的性能優化主要目標是把程序瀏覽器以及服務器的數據處理優勢充分開發出來,降低客戶端和服務器端口之間的數據量,降低連接次數和時間,將客戶端和Web服務器的處理任務合理的分配,提高ASP.NET應用程序的性能。對于企業應用的門戶網站,多采用分布式多層架構,通過分布結構形成集群服務,實現載荷的均衡分布,提高網站的整體運行性能,并保證運行穩定性。所以ASP.NET網站的系統架構和性能優化應該從系統架構、網頁頁面優化、業務邏輯調整、數據訪問和緩存技術等方面著手開展[3]。

2 系統架構優化

互聯網規模不斷增加,用戶群數量迅速膨脹,Web2.0逐漸推廣,對網站性能和擴展性的要求更高,網站高度并發性能也越來越得到重視,需要采用必要的措施進行網站系統架構優化。

圖9為相位平均過程中參與每個相位角平均的流場個數。從圖9中可看出,在8 000個瞬態場中,參與這8個相位角平均的流場的數量基本接近,為80~100個。

2.1 分離Web與DB服務器

Web與DB服務器會產生較大的處理器和磁盤I/O占用,分離兩個服務器能夠降低單一服務器的荷載壓力,而且后期系統拓展也比較方便。

2.2 拆分數據表

網站在運行過程中會產生很多數據量非常大的表格,歷史數據量很高的表格在調用時會產生較大的帶寬占用,為此,可將數據量大的表格進行適當拆分,通過索引表或者分組進行關聯,能夠顯著提高數據查詢速度,獲得更高的網站整體性能,同時減少了數據處理對現有運行數據庫的影響[4]。

2.3 分離式圖片服務器

在Web服務器中,圖片是最消耗資源的數據形式,無論是為了方便管理還是為了提高網站性能,都應該對圖片服務器進行分離處理,通過布置獨立服務器,實現網絡頁面和圖片之間的分離。通過這種分離結構,可以減少圖片加載對整個頁面性能的影響,并且降低了服務器的載荷,系統因為圖片問題產生的崩潰風險也大大下降,同時對頁面服務器和圖片服務器進行分別優化,采用針對性的配置方案,能夠進一步提高系統的執行效率。

2.4 讀寫分離

對數據進行同時讀寫是比較困難的,效率很低,影響頁面的響應速度,為此,需要進行相應的調整。根據讀寫壓力實際情況,通過分別建立兩套服務器,分別負責數據的讀和寫,負責寫操作的服務器可定時將服務器數據傳輸給讀操作服務器,通過這種形式能夠實現服務器任務量的均衡,并為讀服務器提供更豐富的資源,而且對短時間過載的適應性更強,不會在短時間突發事件影響下直接崩潰,但是可能會出現系統整體運行效率下降[5]。

2.5 業務層調整

業務層集中完成業務邏輯,是性能優化比較關鍵的位置,常見的優化措施主要有數據緩存、SQL混存依賴和用戶自定義控件等措施。

1)數據緩存和SQL緩存依賴 合理利用緩存能夠顯著提高網站性能。通過ASP.NET配合SQL Server 2005,借助數據緩存技術和緩存依賴技術結合,添加在緩存中的任何項目都能夠直接被其他頁面或者控件訪問,數據的共享性更強。一些數據讀寫十分頻繁,將其存放在數據緩存中,不同頁面實現數據共享,能夠有效降低和數據庫之間的連接次數,顯著降低系統響應時間,減少對服務器資源的消耗,頁面穩定性更高。如果緩存數據需要數據庫數據提供,可以使用SQL數據緩存依賴技術數據庫中數據出現變化,可自動將新數據加載到數據緩存中。

2)自定義控件使用用戶系定義控件可以明顯提高軟件組件的重復利用效率,軟件開發和生產效率更高,而且能夠進一步提升系統性能。對于一些有多個局部需要更新的大頁面,定義大頁面單獨刷新或者更新的部分為用戶自定義控件,需要更新則由服務器通過更新控件數據就能夠完成,進一步降低服務器資源消耗和帶寬占用[6]。典型自定義控件結構如圖2所示。

圖2 自定義控件結構Fig.2 Custom control structure

3)分辨回傳事件 通過Page類IsPostBack屬性判斷是否為回傳事件,確定為回傳事件之后,就無需對頁面控件以及數據進行重新加載,能夠進一步降低網絡帶寬的占用和服務器資源消耗。

4)減少數據庫調用和服務器資源消耗

①頁面輸出緩存 頁面輸出緩存和數據緩存有著明顯的不同,頁面緩存直接緩存整個頁面的內容,當用戶下一次請求頁面內容時直接從緩存中調用,無需再次進行加載,除了緩存整個頁面之外,還有帶參數頁面緩存和部分頁面緩存等更深層優化。

②使用靜態頁面 使用頁面緩存可以減少頁面加載工作量,除了使用頁面緩存之外,通過動態Web頁面生成靜態HTML頁面同樣能夠加快頁面的相應速度,特別是訪問量巨大的網站首頁,很多部分需要進行數據庫數據讀取,并且需要進行一定的邏輯運算,使用HTML靜態頁面代替動態頁面能夠減少數據庫數據讀取量和邏輯運算工作量,頁面生成速度更快。

3 性能優化

3.1 頁面優化

ASP.NET網頁有窗體文件和隱藏代碼兩部分,前者使用HTML代碼生成,為用戶提供交互界面,隱藏代碼主要是C語言等代碼,負責事件邏輯處理,頁面表示層的優化需要從HTML頁面優化和C#語言代碼兩部分同時進行。

1)HTML頁面優化 為了提高頁面的性能,需要盡量減少HTTP的請求數,可以合并JS、CSS文件,合并框架圖片或者變動量小的圖片,切割CSS背景用于渲染,優化本地Cache緩存JS/CSS/Image。在盡量控制對服務器的請求次數的同時還應當減少請求的文件數據量大小,減少對網絡帶寬過大的占用,刪除JS文件中的空白換行以及注釋,對于采用(X)HTML+CSS方式構建的網站,通過借助服務端的GZIP工具進行JS/CSS文件壓縮,也能夠實現頁面的優化。

一些實用頁面技巧同樣能夠起到明顯的作用,如保持同一URL大小一致,標識明確,盡量使用文字友情鏈接減少圖片數量或者降低圖片質量,都能夠顯著提高頁面性能。

2)提高C#編碼效率 使用foreach代替for,foreach的執行效率遠高于for,減少Arraylist的使用量,使用自定義集合類型或者泛型代替,減少拆箱或者封箱,減少運算量,如果需要存儲的數據量就較少時可以使用Hash Table代替String Dictionary、Nam Vale Collection等字典集合類型,避免將字符封裝在雙引號中,能夠有效節省資源,提高頁面性能。避免循環體內初始變量,不使用Exception控制程序流程,防止濫用反射這種浪費性能的操作[7]。

3.2 邏輯層優化

業務邏輯層是數據處理最高層,主要負責進行上下交互數據邏輯處理,完成系統業務。

業務邏輯層是類文件的集合,為表示層提供數據調用接口,同時方位數據層,對業務邏輯層的優化主要通過業務邏輯控制策略優化來開展。

1)盡量使用靜態HTML頁面 ASP.NET頁面程序可以進行頁面信息溝通,非常便捷,便于進行數據庫內容的存取和高鞥改,對于論壇和留言墻頁面非常適用,但是頁面程序需要服務器端執行數據處理或者數據查詢操作,并生成HTML頁面并發送給表示層,占用較多的服務器資源,如果頁面程序過多,會占用較多的服務器資源,尤其是在一些并發量很大的網頁上過多使用頁面程序會怎加服務器載荷,可能會造成服務器奔潰。,所以,盡量使用效率最高、消耗最小的HTML頁面,減少對數據庫的大量訪問,降低服務器荷載,提高網站性能。

2)減少不必要回送操作積極使用Page_Load事件和Page.IsPostBack屬性。HTTP靜態連接在數據傳輸完畢之后會直接斷開瀏覽器和服務器,在用戶有新動作時再重新連接,執行新的操作,重新連接頁面之后響應Page_Load事件通過檢查Page.IsPostBack屬性,可降低頁面重新加載次數,加快加載速度。

3)減少服務器控件使用量ASP.NET中有著標準的完整的Server Control控件和HTML控件,相比之下,服務器控件明顯有著比HTML控件更高的靈活性,但是同樣會造成更多的服務器資源消耗,所以在設計過程中在保證網頁功能的同時應該盡量控制服務器控件的使用數量,減少對服務器資源的消耗。

4)及時關閉不必要的Session狀態 ASP.NET使用Session在客戶端上保存用戶授權相關信息,提供了Sessinon之后調用頁面之前會首先調查頁面的Session狀態,會對頁面的執行性能產生影響。所以如果是和客戶授權無關的頁面,可以關閉Session狀態,在HTML代碼中添加語句就可以實現。

3.3 數據層優化

1)選擇適用.NET數據庫提供程序 SQLClient的驅動程序在不經過OLEDB層協議轉換的情況下就能夠提供數據庫支持,當前針對特定數據庫都有著相應的.NET數據庫,如Oracle.NET等,使用合適的數據庫提供程序,能夠提高數據調用的效率。

2)正確使用連接池 對數據庫進行訪問需要不斷創建、打開、關閉數據連接,會消耗很多服務器資源,使用連接池技術能夠對數據庫數據連接進行優化,提高數據庫打開和關閉性能,使用連接池應該本著盡量晚打開,盡早關閉的原則進行設置,關閉時要能夠關閉全部連接期對象,保證數據連接正常,防止出現無用連接。

3)合理使用數據庫存儲過程 存儲過程是服務器上存儲的一組預編譯SQL語句,將其編譯為可執行計劃緩存在數據庫中,防止重復解析,節約服務器加載時間。在服務器上存儲過程能夠降低對網絡帶寬的占用,節省了執行時間,在服務器上運行的存儲過程獨立于ASP.NET,方便日后的拓展和更新,并且避免了SQL的注入攻擊。

4)SQL命令優化 SQL語句的解析工作量很大,如果提高SQL語句質量不高,或者有邏輯錯誤,會產生額外的資源和時間浪費,為此,需要對SQL語句進行適當的優化,提高SQL的運行效率[8]。

字段提取應該盡量避免使用select語句,使用exists代替,并注意Where子句的語句順序,編寫SQL時應該減小查詢范圍,減少服務器端Order By語句使用量,使用客戶端的Dataset中的順序操作代替。

3.4 系統緩存優化

傳統緩存把重復率高的數據防治在Application或者Session中,頁面輸出緩存則保存ASP.NET頁面內容在服務器內存中,在緩存數據過期之前,系統內存輸出數據,緩存內容直接發送給用戶,無需進行再次頁面處理。頁面輸出緩存對于一些更新頻率不高,但是編譯工作量較大的網頁來說能夠保持較高的性能,而且編譯語句很短。頁面局部緩存將頁面的局部緩存在內存中,便于快速響應。頁面其他位置則為動態內容,有控件緩存和替換后緩存兩種方式,分別通過User Control控件和Substitution控件實現。數據緩存通過編程緩存任何對象,使用System.Web.Cacheing命名中間Cache實現。

4 結束語

從結構架構優化、頁面優化、邏輯層優化、數據層優化、系統緩存優化等方面入手對ASP.NET網站系統架構以及性能優化進行了討論,通過大量細節層面的優化措施,顯著提高了網站性能和承受能力,ASP.NET網站的優化是長期細致的工程,需要工作人員在實際工作中不斷摸索。

[1]張英剛.ASP.NET平臺網站架構調優實踐[J].程序員,2012(l):12.ZHANG Ying-gang.ASP.NET platform website structure optimization practice[J].Journal of programmers,2012(l):12.

[2]曾誠.ASP.NET應用程序的探討與研究[J].湖北大學學報,2013(2):22.ZENGCheng.ASP.NETapplication to explore and research[J].Journal of Hubei University,2013(2):22.

[3]萬榮澤.基于ASP.NET管理信息系統性能優化的研究與實踐[J].廣西輕工業,2012(12):91-92.WAN Rong-ze.Management information system based on ASP.NET, the research and practice of performance optimization[J].Journal of Guangxi Light Industry,2012(12):91-92.

[4]俞華鋒.基于ASP.NET的電子商務網站的性能優化研究[J].科技創新導報,2012(31):200-201.YU Hua-feng.Based on the performance of the ASP.NET ecommerce site optimization study[J].Science and Technology Innovation Herald,2012(31):200-201.

[5]王茹.基于ASP.NET應用程序的性能優化 [J].黑龍江科技信息,2010(10):72-73.WANG Ru.Based on the ASP.NET application performance optimization[J].Journal of Heilongjiang Science and Technology Information,2010(10):72-73.

[6]桂友武,桂友超.基于ASP.NET企業網站的性能優化探討[J].企業技術開發,2011(4):121-122.GUI You-wu,GUI You-chao.Based on the performance of the ASP.NET website optimization study[J].Journal of Technology Development of the Enterprise,2011(4):121-122.

[7]厲毅.優化ASP.NET應用程序性能的研究與探討 [J].福建電腦,2012(9):67-68.LI Yi.Optimize the ASP.NET application performance research and discussion[J].Journal of Fujian Computer,2012(9):67-68.

[8]李天平.NET深入體驗與實戰精要[M].北京:電子工業出版社,2012.

猜你喜歡
頁面數據庫優化
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 免费观看精品视频999| 国产永久在线视频| 青青热久免费精品视频6| 操美女免费网站| 欧美日韩激情在线| 中文字幕在线看视频一区二区三区| 亚洲人成网线在线播放va| 97国产精品视频自在拍| 特级aaaaaaaaa毛片免费视频| 9啪在线视频| 亚洲精品制服丝袜二区| 欧美一级爱操视频| 97色婷婷成人综合在线观看| 伊人久久婷婷| 国产不卡在线看| 九色国产在线| 欧美啪啪一区| 爆操波多野结衣| 精品人妻AV区| 永久天堂网Av| 91精品啪在线观看国产60岁| www精品久久| 欧美在线黄| 制服丝袜无码每日更新| 亚洲日韩第九十九页| 国产福利小视频在线播放观看| a网站在线观看| 色综合久久综合网| 久久中文无码精品| 无码丝袜人妻| 国产三级韩国三级理| 亚洲美女视频一区| 久久人搡人人玩人妻精品| 亚洲综合第一区| 97国产在线观看| 国产精品熟女亚洲AV麻豆| 欧洲在线免费视频| 亚洲福利片无码最新在线播放| 女人爽到高潮免费视频大全| 国产在线97| 狠狠五月天中文字幕| 国产亚洲欧美在线中文bt天堂 | 欧类av怡春院| 欧美视频在线不卡| 亚洲国产精品成人久久综合影院| 亚洲日韩在线满18点击进入| 国产麻豆福利av在线播放 | 毛片视频网址| 亚洲男人在线| 欧美精品高清| 亚洲综合激情另类专区| 国产美女视频黄a视频全免费网站| 亚洲中文字幕av无码区| 中文字幕在线不卡视频| 99激情网| 国产毛片不卡| 无码精油按摩潮喷在线播放| 亚洲精品午夜天堂网页| 久久久久无码精品国产免费| 亚洲精品视频在线观看视频| 国产日本欧美在线观看| 欧美日韩久久综合| 欧美19综合中文字幕| 福利在线不卡一区| 国禁国产you女视频网站| 亚洲综合专区| 日韩午夜福利在线观看| 91福利免费| 亚洲欧州色色免费AV| 波多野结衣一二三| 日韩人妻无码制服丝袜视频| 亚洲欧美一区二区三区蜜芽| 日韩无码精品人妻| 欧美成人午夜视频免看| 在线综合亚洲欧美网站| 亚洲精品视频免费| 亚洲精品卡2卡3卡4卡5卡区| 一区二区影院| 成人字幕网视频在线观看| 99re在线视频观看| 麻豆a级片| 免费国产好深啊好涨好硬视频|