将这些数据导入我的应用程序的最快方法?

时间:2011-07-16 14:27:28

标签: c#

我正在使用c#。

我在表格中有数据。该表有5列整数和小数值。它中有大约30,000行。

将此内容传输到我的应用程序的最快方法是什么?

我尝试过使用DataReader,迭代它,并使用Read(),GetDecimal和GetInteger函数。但它很慢。

使用sqladapter将表绑定到DataTable会更快吗?

2 个答案:

答案 0 :(得分:4)

不,绑定到DataTable不会比数据读取器快;实际上它会增加开销

我会创建一个与表匹配的类,并使用数据读取器(手动)或“dapper”将其填充到List<T>。这两者之间没有太大的速度差异,因为大量的分析:这是你能得到的速度(没有将数据移近以避免局域网)。

一个选项可能是在本地缓存数据,因此大多数时候你会读到你根本没有点击数据库。我建议使用protobuf-net序列化到本地磁盘上的文件;再次 - 你将获得最快的速度。您还可以存储一些令牌,以便您可以判断数据何时过时 - 可能是最后一个时间戳或类似的。然后你只需检查数据库以查询最新的时间戳;如果相同,请从您的本地副本中读取。否则从DB加载,然后重写本地副本。

答案 1 :(得分:0)

与使用DataTable相比,DataReader选项更快,占用的内存更少;但这取决于你如何使用这些选项。

•如果使用DataReader迭代并创建自定义类的对象集合,那么显然读者很快。

•但如果你迭代阅读器并创建一个DataTable,那么它将对性能产生负面影响。