在ASP.NET中提取多个记录集时的DataReader或DataSet

Ger*_*ton 11 asp.net performance sqldatareader dataset

我有一个ASP.NET页面,其中包含一些需要填充的控件(例如下拉列表).

我想单独前往数据库并带回多个记录集,而不是为每个控件进行往返.

我可以在DataSet中带回多个表,或者我可以带回一个DataReader并使用'.NextResult'将每个结果集放入一个自定义业务类中.

我是否可能使用DataReader方法看到足够大的性能优势,或者我应该只使用DataSet方法?

任何你通常如何处理这个的例子将不胜感激.

Wah*_*tar 7

  1. 如果您从DataBase中获取的记录超过1000条.
  2. 如果您对自定义存储和自定义分页" For GridView " 不是很感兴趣
  3. 如果您的服务器有内存压力.
  4. 如果每次调用该页面时连接到DataBase都没有问题.

然后我认为更好的是使用DataReader.

其他

  1. 如果从DataBase中获取的记录少于1000条.
  2. 如果您对存储和分页" For GridView " 感兴趣
  3. 如果您的服务器没有内存压力.
  4. 如果您只想连接一次DataBase并获得缓存的好处.

然后我认为更好的是使用DataSet.

我跳,我是对的.


Mit*_*ers 1

我采用了一种对所有调用都使用 DataReaders 的方法,我注意到性能有了显着的提高,特别是在加载下拉列表和其他类似项目时。

就个人而言,对于多个下拉列表,我通常会拉取单个数据块来获取它,而不是使用返回 5 个结果集的存储过程。