【发布时间】:2010-11-12 00:16:07
【问题描述】:
DataSets 在从数据库中检索数据时可能比DataReader 慢 10 倍以上。我认为这是由于DataSets 必须处理关系等的开销。但是DataSets 和DataReader 之间的速度差异是由于DataSets 必须从DB,还是由于应用程序必须进行更多处理,或两者兼而有之?
我假设 DataAdapter 在后台使用 DataReader,因此应用程序需要执行的命令数才能检索 100 行 DataAdapter 等于或大于应用程序需要执行的命令数,如果这些100 行由DataReader 直接检索。 DataReader 是一次检索一行还是一次检索一个字段(特定行的)?
【问题讨论】:
-
你怎么知道 DataSets 比 DataReaders 慢 10 倍?即使接近这个数字,我也没有测量出任何差异,更像是 +/- 5% 的差异。
-
你有那个“10x”的参考或证据吗?
-
不管细节如何,一般来说,DataReader 通常会快很多(根据我的经验,如果您的查询实际上返回许多行,几乎总是超过 5% - 否则没关系无论如何)。我不确定为什么 DataSet 慢得多,我想这是一个合理的问题。