Запрос Oracle выполняется медленно (или не выполняется) из приложения .NET, но быстро из SQL Developer

Мы используем ODP.NET для выполнения запросов к базам данных Oracle, и обычно это работает нормально. Однако в этой базе данных есть конкретная база данных и конкретное представление, к которому мы просто не можем выполнить запрос из .NET. Например:

SELECT some_varchar_field FROM the_view WHERE ROWNUM < 5;

Если я выполню этот запрос из Oracle SQL Developer, он завершится менее чем за секунду. Если я выполняю идентичный запрос из нашего приложения .NET, использующего ODP.NET, оно зависает и в итоге выдает ошибку «ORA-03135: соединение потеряло контакт». Я думаю, что ограничение всего несколькими строками исключает вероятность того, что это проблема FetchSize.

Есть и другие запросы, которые я могу успешно выполнить, но они медленнее в нашей программе, чем в SQL Developer. Опять же, я понимаю, что SQL Developer изначально получает данные только для первых 50 строк, но я думаю, что условие ROWNUM исключает это из уравнения.

Что может отличаться в соединении или команде, которые использует Oracle SQL Developer от той, которую использует наше приложение, что может вызвать разницу в скорости?

К сожалению, у меня нет доступа к серверу (кроме как запускать запросы Oracle к нему).

Спасибо.

ОБНОВЛЕНИЕ: я пробовал тот же самый запрос с поставщиком Microsoft Oracle, и он выполняется очень быстро. К сожалению, этот поставщик устарел, так что это не долгосрочное решение.

Ответы на вопрос(2)

Ваш ответ на вопрос