频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

ASP.NET错误处理和程序优化

来源:pcdog 作者:佚名 出处:巧巧读书 2008-02-18 进入讨论组
<system.web> <customErrorsdefaultRedirect="url"mode="RemoteOn ly"> <errorstatusCode="code"redirect="url"></error> </customErrors> </system.web>

议程
.错误类型以及处理方式
.提高数据访问性能
.服务器控件的使用
.缓存的使用
.提高性能的实用技巧

性能引言
.是
–XmlDocumentLoadXML(stringstrFileID) // 加
载XML
–boolCheckIDExisit(stringstrFileID,stringstrID)
//判断节点是否存在
.还是
–boolCheckIDExisitByXml(string strXml,stringstrID) //判断节点是否存在
–或boolCheckIDExisitByXml(XmlDocumentobjXml,stringstrID) // 判断节点是否存在

逻辑设计

. 建议: 采用3层逻辑模型
– Pages (.aspx) and User Controls (.ascx) UI
– Business and Data Access classes in \bin dir
– Data within a SQL Database via SPROCs

使用最佳的Data Provider
.ADO.NET 可支持多个Provider:
–System.Data.SqlClient
–System.Data.OracleClient
–System.Data.OleDb
–System.Data.Odbc
.所有Provider的编程模型相同
–但是性能方面存在明显差异
.建议:使用最佳Provider
–在访问MSDE/SQL 时始终使用SqlClient
–在访问Oracle 时始终使用OracleClient

Data Provider测试
.方案:
–从SQL Northwinds 数据库中抽取50 行
–<%= %> html 表格格式化技术
.衡量的三种技术(不同的Data Provider ):
–传统ASP/ADO
–ASP.NET w/ System.Data.OleDb 提供商
–ASP.NET w/ System.Data.SqlClient 提供商

0
100
200
300
400
500
600
700
800
900
传统 ASP/ ADO 带 OLEDB 的
ASP.NET
带 SQL 的 ASP.NET
请求/秒(4P 服务)
数据性能测试

DataReaders 和DataSets
.DataReader
–对查询的结果提供了单向读取的操作
–轻量快速–但在Reader为关闭之前始终处于连接状态
.DataSet
–非链接的数据访问方式
–内部使用DataReader用于获取数据
–在完成DataSet的获取后会自动关闭DataReader
.如何选择?
–依赖于您的应用
–般情况下,读取大量数据,对返回数据不做大量处理用
SqlDataReader.对返回数据大量处理用datset比较合

DataReader ?DataSet
通常情况下DataReader比
DataSet快16%!!

ExecuteNonQuery和ExecuteScalar
.ExecuteNonQuery
–对数据的更新不需要返回结果集
–由于不返回结果集可省掉网络数据传输。它仅仅返回受影响
的行数。如果只需更新数据用ExecuteNonQuery性能的开销
比较小。
.ExecuteScalar
–它只返回结果集中第一行的第一列。使用ExecuteScalar 方
法从数据库中检索单个值(例如id号)。
–与使用ExecuteReader 方法,返回的数据执行生成单个值所
需的操作相比,此操作需要的代码较少
.如何选择?
–只需更新数据用ExecuteNonQuery.单个值的查询使用
ExecuteScalar

数据的绑定DataBinder
.一般的绑定方法<%#
DataBinder.Eval(Container.DataItem, “字段名”)
%>用DataBinder.eval 绑定不必关心数据来源
(Dataread或dataset)。不必关心数据的类型eval
会把这个数据对象转换为一个字符串。在底层绑
定做了很多工作,使用了反射性能。正因为使用
方便了,但却影响了数据性能。
.直接转换成DataRowView的话,将会给性能带来
很大提升:
.<@% ((DataRowView)Container.DataItem)["字
段名"] %>

连接池
.ADO.NET 拥有内置的连接池
–自动缓存/重新使用连接
–不必为此编写任何代码
.代码建议:
–“在后期打开代码中的连接,然后在早期将其
关闭”
–切勿长时间保持连接状态
–完成后应立即显示地关闭数据库连接,以将其返
回至池中

连接池
.优化提示:
–不同的连接字符串可以生成多个不同的连接池
–在Web.Config 中存储单个连接字符串
–使用ConfigurationSettings.AppSettings,以在运
行时采用编程形式对其进行访问
.始终应明确关闭数据连接,避免连接泄漏
–否则连接将在下一次垃圾收集之前保持打开状态
–泄露连接会显著降低性能

使用存储过程
.建议将SPROC 用于数据存取
–通过DBA 进行更轻松的性能调试
–通过使用数据库事务处理避免出现分布事务成本
–有助于防止SQL 注入攻击
–有助于消除应用与数据库反复调用的成本
.有趣的提示:
–可以通过企业管理器来关闭动态SQL 支持,以强制使用
SPROC

DEMO3
使用连接池优化程序

议程
.错误类型以及处理方式
.提高数据访问性能
.服务器控件的使用
.缓存的使用
.提高性能的实用技巧

浏览URL http://www.qqread.com/aspdotnet/n397042.html 更多文章 更多内容请看系统优化大全数据库处理专题.NET移动与嵌入式技术专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章