【发布时间】:2013-08-26 21:10:16
【问题描述】:
我有一个从许多数据读取器读取的批处理过程。
当我使用完数据读取器后,我调用 close() 方法。
这太慢了。如果我不关闭数据读取器,应用程序将在 0.4 毫秒内运行 如果我关闭数据读取器,应用程序将在 26 秒内运行。
有没有人知道如何解决这个问题?
子程序中有很多数据读取器。恐怕不关闭它们我会把垃圾留在记忆中。
【问题讨论】:
-
这里还有更多上下文吗?你读过所有数据吗?它会丢弃您没有阅读的其他 200 万行吗?是否涉及交易?
-
不涉及事务。使用 sql server 我读到我可以在调用关闭之前为命令对象调用 Cancel 方法。提高速度,但不适用于 sqlite。结果集大约有 1000 行。我在通话结束前阅读了所有内容。考虑到我所有的大小,我认为这没什么。
-
您是否只从数据阅读器中读取前几行,通过在查询中输入
top可能会受益。
标签: .net sqlite datareader