熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.NET如何進行性能優化問題[2]

2013-11-13 11:00:33  來源: .NET編程 

  二查詢語句的優化(針對sql server)

  很多人只為目的寫出sql語句而不考慮sql語句的執行效率在這我只提供一優化表順序的方法(sql語句的優化和原則將會在我的sql server學習筆記中專題討論)

  對sql語句執行效率可用sql server的查詢分析器來查看語句的執行過程

  優化表順序一般情況下sqlserver 會對表的連接作出自動優化例如select nameno from A join B on A id=Bid join C on Cid=Aid where name=wang

  盡管A表在From中先列出然後才是B最後才是C但sql server可能會首先使用c表它的選擇原則是相對於該查詢限制為單行或少數幾行就可以減少在其他表中查找的總數據量絕大多數情況下sql server 會作出最優的選擇但如果你發覺某個復雜的聯結查詢速度比預計的要慢就可以使用SET FORCEPLAN語句強制sql server按照表出現順序使用表如上例加上SET FORCEPLAN ON……SET FORCEPLAN OFF 表的執行順序將會按照你所寫的順序執行在查詢分析器中查看種執行效率從而選擇表的連接順序

  使用SET FORCEPLAN選擇表聯結順序

  三頁面的優化(aspx)

  主要針對幾個頁面屬性

  EnableViewState(頁面的視圖狀態)如果無特殊要求設置為false使用ViewState 每個對象都必須先序列化到 ViewState 中然後再通過回傳進行反序列化因此使用 ViewState是沒有代價的盡量減少使用對象如果可能盡量減少放入 ViewState 中的對象的數目下面情況基本上可以禁用viewstate

  ()頁面控件 (ascx)

  ()頁面不回傳給自身

  ()無需對控件的事件處理

  ()控件沒有動態的或數據綁定的屬性值(或對於每個postpack都在代碼中處理)

  單個頁面或每個頁面都禁用 ViewState如下所示單個頁面 每個頁面在 webconfig 中 EnableSessionState保持默認值即可(如果頁面用到sessionstate它才會占用資源)EnableViewStateMac如果無安全上的特殊要求保持默認值

  Pagelayout頁面布局模型建議使用Flowlayout(元素不帶絕對定位屬性添加)Gridlayout(絕對定位屬性)由於采用絕對定位將會比Flowlayout生產更多的代碼主要是控件的定位信息

  項目發布的時候切記解除頁面的Debug狀態

  Html語言的優化我的建議是熟練掌握Html/javascript少用vsnet自動生產的代碼它會自動生成一些無用的html代碼

  smart navigation設置為true能讓用戶明顯的感覺性能提高啟用此屬性後對客戶端和服務端影響不大它能智能涮新需要涮新需涮新的部分

[]  []  []  


From:http://tw.wingwit.com/Article/program/net/201311/14968.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.