Прежде, чем я получу сообщение "Вы пробовали ODP.net?" отвечает, да, есть и использую сейчас.
Я перемещаю данные с оракула на сервер sql (не важно) и использую средство чтения данных в соединении оракула. Таблицы большего размера ползают. Иногда до 10 записей в секунду. Когда я заметил проблемы с производительностью, я сократил свой исходный код до простого выполнения простых вызовов Reader.Read () по всей таблице, чтобы ничто другое не замедляло его. Я пробовал клиентов MS и Oracle ODP .net. В настоящее время я использую 11g Instant Client, 64-битный на win7 64-битный, 8-гигабайтную оперативную память и все вкусности. Я использовал его в локальной сети, сейчас я использую VPN, и производительность в основном такая же. Я настроил размеры предварительной выборки безрезультатно.
Я могу запустить функцию экспорта данных в инструментах Oracle Sql DEveloper и экспортировать все данные для всей базы данных на этом же компьютере по той же сети примерно в 100 раз быстрее.
Я могу скопировать свое приложение .net на сервер Oracle и запустить на нем тот же тест производительности, и он завершится менее чем за секунду.
Итак, это не сама сеть, которая работает медленно, и не количество данных (как демонстрирует экспорт SqlDeveloper), и это не сам код .net и не oracle db (как показано при запуске его на сервере), поэтому это должна быть какая-то комбинация Datareader, используемая в любой сети.
Это моя мгновенная установка клиента? Полноценный клиент работает лучше? 64-битный клиент все испортил? Действительно в растерянности.
ОБНОВИТЬ:
С тех пор я запускал то же приложение, скомпилированное для 32-разрядной версии, и запускал на виртуальном ПК экземпляр Windows XP, на котором установлен «полный» клиент oracle (очевидно, 32-разрядная версия). Даже с уменьшенной производительностью виртуальной машины она все равно работала почти в 10 раз быстрее. Итак, определенно какая-то проблема с мгновенным клиентом, и я предполагаю, в частности, с 64-битным мгновенным клиентом. Последним тестом, подтверждающим это, будет установка 32-битного мгновенного клиента на этом же компьютере и его повторный запуск. Если найду время ...