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