我目前的情況是,我有一個非常大的記錄集(200萬條左右的記錄)我試圖使用.Net和Oracle.DataAccess.dll
庫(版本2.112。 2.0)。DataReader掛起時檢索大記錄集
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..
行,甚至沒有進入使用語句中的代碼行......它似乎沒有做任何事情。
起初,我想,也許這是我的查詢本身的問題,但是當我嘗試使用SQL Navigator中運行它,它會返回少於10分鐘內記錄...
我做什麼錯誤?這是正常的嗎?有沒有可以設置的設置使OracleDataReader
不掛?
此外,即使此代碼在VB中,我也同樣適用於C#。
SQL Navigator是否實際返回所有值?他們可能正在包裝你的sql語句,只得到前100名的結果或其他東西。 –
它返回頂部250,然後你可以點擊繼續獲取越來越多...如果我選擇將其下載到分隔文本文件,它需要一段時間,但它在不到30分鐘左右.. 。 –
也許您的機器上的網絡緩衝區已滿?如果是這樣,也許你可以簡單地把你的查詢分成多個小的查詢? –