###前提・実現したいこと
タイトル通りですが、作成しているアプリケーションからSQLを実行すると下記の例外が発生してしまいます。
SQLが悪いのか、アプリ実装時の問題なのか原因がわからず困っております。
###発生している問題・エラーメッセージ
System.OutOfMemoryException メモリが不足しております。
###該当のソースコード
Private Async Function GetData() As Task(Of DataTable) Dim dataTable = New DataTable() Using con As New SqlConnection(strConnection) Using cmd As New SqlCommand("SQL"), con) With {.Connection = con} Await con.OpenAsync().ConfigureAwait(False) Using da = Await cmd.ExecuteReaderAsync().ConfigureAwait(False) DataTable.Load(da) Return dataTable End Using End Using End Using End Function
###試したこと
実行するSQLをSSMSで実行すると問題なく実行されます。(約200万レコード,30秒ほど。)
時期を指定し、その期間のクエリを発行するのですが期間が長くなると上記の例外が発生してしまいます。
非同期での取得方法に誤りがあるのか、それとも単純にDataTableの限界なのか原因を把握できておりません。
他の方法での取得方法はございますでしょうか。
###補足情報(言語/FW/ツール等のバージョンなど)
.net4.5
SQLServer2014 standard

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/27 05:17