У меня есть несколько процедур Oracle, которые генерируют / возвращают большое количество данных, которые мне нужно записать в файл.В настоящее время я пытаюсь достичь с помощью чтения данных.Кажется, работает, я успешно сгенерировал файл 479mb без каких-либо проблем.Прошло менее 4 минут с момента, когда я получил dataReader, чтобы завершить файл.
Но читатель данных, который я получаю для определенной процедуры, сканирует .Это невероятно медленно.Я изменил свой код, чтобы попытаться получить лучшее представление о том, что происходит ....
System.Diagnostics.Debug.Write("Performing .Read() on DataReader: ")
Dim d1 As DateTime = DateTime.Now
Dim result As Boolean = myDataReader.Read()
Dim ts As TimeSpan = DateTime.Now.Subtract(d1)
System.Diagnostics.Debug.WriteLine(ts.ToString)
Интересно, что мой вывод выглядит примерно так:
Performing .Read() on DataReader: 00:00:00
Performing .Read() on DataReader: 00:00:00
Performing .Read() on DataReader: 00:00:00
Performing .Read() on DataReader: 00:00:00
Performing .Read() on DataReader: 00:00:00
Performing .Read() on DataReader: 00:00:00
Performing .Read() on DataReader: 00:00:00
Performing .Read() on DataReader: 00:00:00
Performing .Read() on DataReader: 00:00:00
Performing .Read() on DataReader: 00:00:00
Performing .Read() on DataReader: 00:00:00
Performing .Read() on DataReader: 00:00:00
Performing .Read() on DataReader: 00:00:00
Performing .Read() on DataReader: 00:00:00
Performing .Read() on DataReader: 00:07:33.5037500
Я действительно в растерянности, что делать дальше.Я не вижу ничего уникального или необычного в строке, которая занимает 07: 33.5037500.Есть предложения?
РЕДАКТИРОВАТЬ:
Спасибо за ответы всем.Во-первых, насколько я могу судить, исключений не выбрасывается.Как и предполагалось, я взглянул на эту конкретную процедуру, которая демонстрирует поведение выше, и в то время как процедура является смехотворно массовой;но, похоже, он использует много курсоров, чтобы заполнить временную таблицу оракула.Возвращаемым курсором ссылки является SELECT * FROM этой временной таблицы.
Я пишу блок PL / SQL, который откроет этот курсор, чтобы увидеть, существует ли проблема с производительностью при удалении кода .Net.... надеюсь, это поможет;но если у вас есть какие-то дополнительные мысли, это будет высоко оценено.
Еще раз спасибо.Похоже, что это проблема PL / SQL, а не проблема .NET.