IMZRH的日志

努力成为一个有用的人

导航

ADO.net下几个提高数据访问性能的方法

Posted on 2006-11-09 16:52  张荣华  阅读(570)  评论(1编辑  收藏  举报

1  使用最佳的DataProvider(如在访问SQL时请使用SqlClient,在访问Oracle时使用OraclClient)

2  一般情况下,在读取大量数据,对返回的数据不做大量的修改请使用SqlDataReader.因为它提供轻量快速的单向读取。但若对返回的数据做大量处理时请用Dataset,因为它能提供非连接的数据访问。曾有人统计,在只读的情况下,DataReader比DataSet快16%左右,并且数据越多,性能差别越明显。

3 若只需要更新数据请用ExecuteNonQuery,因为它不返回结果集,可节省大量的网络数据传输,单个值的查询请用ExecuteScalar,因为它只返回结果集的第一行。

4 不用<%# DataBinder.EVal(Container.DataItem,"FieldName")%>来绑定字段,
    而用 <@%((DataRowView)Container.DataItem)["fieldNmae"]%>,
    如果你是用DataReader读取的数据,还可以利用更高效的<%# ((DbDataRecord)Container.DataItem).GetInt(1) %>


5 因ADO.net中可自动管理连接池,所以请使用连接池连接数据库,以提高性能。

6 使用存储过程来操作数据

另个还有几个常用的提高性能的方法如下:
不要使用不必要的Session
 不使用不必要的Server Control
 不使用不必要的ViewState
 不要用Exception控制程序流程
 禁用VB和JScript动态数据类型
 关闭Asp.net的Debug模式。
 使用Asp.net Output cache缓存数据。
 对于大量的String连接,请用StringBuilder类。


 注:可参看http://aspalliance.com/1533_ASPNET_Performance_Tips.all#Page15