.Net 的 SQLite:Datareader 关闭方法太慢

Posted

技术标签:

【中文标题】.Net 的 SQLite:Datareader 关闭方法太慢【英文标题】:SQLite with .Net: Datareader Close Method is too slow 【发布时间】:2013-08-26 21:10:16 【问题描述】:

我有一个从许多数据读取器读取的批处理过程。

当我使用完数据读取器后,我调用 close() 方法。

这太慢了。如果我不关闭数据读取器,应用程序将在 0.4 毫秒内运行 如果我关闭数据读取器,应用程序将在 26 秒内运行。

有没有人知道如何解决这个问题?

子程序中有很多数据读取器。恐怕不关闭它们我会把垃圾留在记忆中。

【问题讨论】:

这里还有更多上下文吗?你读过所有数据吗?它会丢弃您没有阅读的其他 200 万行吗?是否涉及交易? 不涉及事务。使用 sql server 我读到我可以在调用关闭之前为命令对象调用 Cancel 方法。提高速度,但不适用于 sqlite。结果集大约有 1000 行。我在通话结束前阅读了所有内容。考虑到我所有的大小,我认为这没什么。 您是否只从数据阅读器中读取前几行,通过在查询中输入top 可能会受益。 【参考方案1】:

已解决:

Datareader 的方法关闭很慢,因为它在 try-catch 中。 我删除了 de try-catch,现在可以了。

【讨论】:

以上是关于.Net 的 SQLite:Datareader 关闭方法太慢的主要内容,如果未能解决你的问题,请参考以下文章

无法从 .NET OleDB.DataReader 检索行

DataReader + DropDownList ASP.NET 项目

MysqlException 未处理 DataReader 必须关闭此连接 vb.net

通用 DataReader 代码示例 (.net)

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

.Net 中 Oracle DataReader 的大性能问题