錯誤類型以及處理方式
–語法錯誤
–邏輯錯誤
使用不正確的對象
但ASP
錯誤
–校驗語句
校驗(checked)和非校驗(unchecked)語句
–try
FormatException 當參數格式不符合調用的方法的參數規范時引發的異常
ArithmeticException
OverflowException (繼承ArithmeticException )在選中的上下文中所進行的算術運算
DivideByZeroException (繼承ArithmeticException )試圖用零除整數值或十進制數值時引發的異常
–Page_Error
Page對象的Error事件
void Page_Error(object sender
DEMO
編寫到windows錯誤日志
把錯誤發送郵件到管理員
利用配置文件處理錯誤
行時間或編譯時間錯誤時
但是與ASP不同
認狀態下
<system
議程
性能引言
–XmlDocumentLoadXML(stringstrFileID) // 加
載XML
–boolCheckIDExisit(stringstrFileID
//判斷節點是否存在
–boolCheckIDExisitByXml(string strXml
–或boolCheckIDExisitByXml(XmlDocumentobjXml
邏輯設計
– Pages (
– Business and Data Access classes in \bin dir
– Data within a SQL Database via SPROCs
使用最佳的Data Provider
–System
–System
–System
–System
–但是性能方面存在明顯差異
–在訪問MSDE/SQL 時始終使用SqlClient
–在訪問Oracle 時始終使用OracleClient
Data Provider測試
–從SQL Northwinds 數據庫中抽取
–<%= %> html 表格格式化技術
–傳統ASP/ADO
–ASP
–ASP
傳統 ASP/ ADO 帶 OLEDB 的
ASP
帶 SQL 的 ASP
請求/秒(
數據性能測試
DataReaders 和DataSets
–對查詢的結果提供了單向讀取的操作
–輕量快速–但在Reader為關閉之前始終處於連接狀態
–非鏈接的數據訪問方式
–內部使用DataReader用於獲取數據
–在完成DataSet的獲取後會自動關閉DataReader
–依賴於您的應用
–般情況下
SqlDataReader
DataReader ?DataSet
通常情況下DataReader比
DataSet快
ExecuteNonQuery和ExecuteScalar
–對數據的更新不需要返回結果集
–由於不返回結果集可省掉網絡數據傳輸
的行數
比較小
–它只返回結果集中第一行的第一列
法從數據庫中檢索單個值(例如id號)
–與使用ExecuteReader 方法
需的操作相比
–只需更新數據用ExecuteNonQuery
ExecuteScalar
數據的綁定DataBinder
DataBinder
%>用DataBinder
(Dataread或dataset)
會把這個數據對象轉換為一個字符串
定做了很多工作
方便了
很大提升
段名
連接池
–自動緩存/重新使用連接
–不必為此編寫任何代碼
–
關閉
–切勿長時間保持連接狀態
–完成後應立即顯示地關閉數據庫連接
回至池中
連接池
–不同的連接字符串可以生成多個不同的連接池
–在Web
–使用ConfigurationSettings
行時采用編程形式對其進行訪問
–否則連接將在下一次垃圾收集之前保持打開狀態
–洩露連接會顯著降低性能
使用存儲過程
–通過DBA 進行更輕松的性能調試
–通過使用數據庫事務處理避免出現分布事務成本
–有助於防止SQL 注入攻擊
–有助於消除應用與數據庫反復調用的成本
–可以通過企業管理器來關閉動態SQL 支持
SPROC
DEMO
使用連接池優化程序
議程
服務器控件
–創建ASP
–ViewState
–控件數量
ViewState 管理
– 狀態以
– 增加網絡負荷(both on render and postback)
– 額外的服務器性能消耗(serialize values to/from viewstate)
– 頁面級(Can disable viewstateentirely for a page )
– 控件級(Can disable viewstateusage on a per control basis )
– 認真審核該功能的使用
– 若不使用PostBack功能
– PostBack時每次都重新生成控件
– 使用<%@ Page Trace=
有關ViewState管理提示
ASP
nfig
<configuration>
<system
<pages enableViewState=
</system
</configuration>
行設置
–<%@ Page EnableViewState=
生成的控件數量
成本
–每個控件的成本通常可以忽略不計
會出現以下情況
–聚集成本有時可以累加
–打開ASP
議程
緩存技術
緩存是計算機快速地再次獲得數據地方式
將經常訪問地數據存儲到計算機可以更快
更容易地讀取地位置
客戶端緩存
客戶
服務器
①從服務器讀取數據
②緩存到硬盤
③以後訪問讀取
硬盤數據
服務器緩存
服務器 ASP
ASP
客戶
③隨後的請求直接
從緩存中取數據
①從ASP
②緩存數據
不要緩存用戶隨時都會
修改的對象
不要緩存包含時間的頁
面
緩存整個應用程序都要
使用的設置或對象(但
這些設置和對象必須在
其生存期內不變化)
不要緩存個人信息
防止別人盜用
緩存那些經常被訪問
並且變化不大的數據
不應該使用緩存的情況使用緩存的情況
出緩沖和數據緩沖
–輸出緩沖指
存中
–數據緩沖指
存於內存中
–使用@OutputCache指令
–例如(添加在頁頭)
<%@ OutputCacheDuration=
DEMO
輸出緩存練習
數據緩存
機制
要求的各種各樣的對象
對各個應用來說是私有的
象的存儲器
的生存周期
時
–使用(類似於Session變量的使用)
Cache[
Response
–注意不能通過下標訪問緩存中的變量
Response
–緩存的刪除
Cache
–緩存變量的添加
它們功能相同
–Insert
(key
slidingExpiration
oveCallBack)
緩存替換策略
不常用和最不重要的對象
出
指定的時間可以是絕對的也可以是相對的
來決定本身鍵值是否有效
DEMO
數據緩存
議程
提高性能的實用技巧
在不必要的時候不要使用Session
提高性能的實用技巧
要對DataSet進行二次加工
行大量刪除
後續操作
二次加工
提高性能的實用技巧
最佳性能
StringBuilder
From:http://tw.wingwit.com/Article/program/net/201311/11632.html