我一直在用.NET编写代码。那是很长一段时间,我应该重新审视我的一些假设,看看情况是否有所改变。
我最大的假设之一是datareader比数据集更快 - http://www.sitepoint.com/dataset-datareader/
这仍然是这样吗?有什么变化吗?我听说谣言现在有些东西比数据显示器更“健谈”,但找不到任何支持它的文章。我的想法是,当我“读取下载”时,我必须进行数据库往返,而替代方案一次性抓住所有内容。
现在是否有更快的替代datareader或上面的文章是否仍然正确?
对于记录,当我有一个datareader时,我所做的就是将行值放入一个对象,将对象放入一个哈希表,读取下一行,重复,然后关闭连接。连接关闭后,可以使用哈希表完成连接对象的任何逻辑(尽快释放池)。
答案 0 :(得分:2)
DataReaders和DataSet具有不同的功能集。如果DataReader没有DataSet所需的功能,那么它的速度并不重要。你要比较苹果和橘子。
如果你想要一个苹果,那么使用苹果,如果你想要橙色的话。使用最好的工具。
答案 1 :(得分:1)
是的,DataSet仍然非常慢,因此您不应该将它们用于任何拥有1个以上用户或是Web应用程序的系统。
答案 2 :(得分:1)
通过DataSet
对象填充DbDataAdapter
的基本逻辑没有改变。它仍然使用DbDataReader
来填充DataSet。因此,根据定义,使用DataReader进行操作仍然会更有效。