繁体   English   中英

DataReader检索大型记录集时挂起

[英]DataReader Hanging when retrieving large recordset

我目前的情况是我有一个非常大的记录集(大约200万条记录),我正在尝试使用.Net和Oracle.DataAccess.dll库(2.112.2.0版)从oracle数据库中查询。

Imports Oracle.DataAccess.Client
Imports Oracle.DataAccess

...在我的程序中:

Dim conn As New OracleConnection()

   ... connect to DB, etc (this all works fine) ...

Dim strSQLQuery = (Query for large recordset)
Dim cmd = New OracleCommand(strSQLQuery, conn)

   Using Reader As OracleDataReader = cmd.ExecuteReader()
    ...
   End Using

现在,此过程适用于较小的查询,但对于较大的查询,它似乎在Using..行上无限期地挂起(我等了整夜,然后最终退出程序),甚至没有进入using语句中的多行代码...似乎根本没有做任何事情。

起初,我以为这可能是查询本身的问题,但是当我尝试使用SQL Navigator运行它时,它会在不到10分钟的时间内返回记录集...

难道我做错了什么? 这正常吗? 是否可以设置使OracleDataReader不挂起的设置?

另外,即使这段代码在VB中,我对C#也同样满意。

如果您尝试创建阅读器而不使用using语句,这听起来可能很愚蠢。 在这里,他们建议您不要使用“使用”,因为当我们使用“使用”时,我们已经看到大量数据会发生不好的事情。 因此,作为最佳实践,我们只是在新过程中创建读取器,因此其范围在过程结束时结束。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM