Oracle ManagedDataAccess泄漏内存?

时间:2016-04-19 08:31:12

标签: .net oracle out-of-memory

我有一个非常简单的C#方法,它从Oracle DB中读取行

using ( OracleDataReader reader = cmd.ExecuteReader( ) )
{
   while ( reader.Read( ) )
   {
      //write row to an excel file using EPPlus
      DoRender( reader, sheet );
      ++rowCount;
   }
}

一切正常,但对于一些带有>的查询120.000行(它是一个导出工具)内存消耗达到> 1GB。关闭连接后,将再次释放内存。 使用诊断工具,可以轻松识别使用内存的组件:

执行循环时诊断工具的三个快照: overview of the snapshots first snapshot detail third snapshot detail

(请注意,细节仅显示增量) 当然,excel编写者需要一些内存,但OracleInternal正在使用其中的大部分内容(这种趋势一直持续着。 我在用 Windows 4 64位上的.NET 4.6.1 64位 Oracle.ManagedDataAccess 12.1.2400(通过nuget,最新版本) EPPlus 4.0.5(通过nuget,最新版本)

任何暗示我可以做的不同或者这是否真的是DataAccess组件中的问题?

0 个答案:

没有答案