Oracle ODP.net Управляемый или неуправляемый драйвер

Существуют ли тесты производительности между управляемыми и неуправляемыми драйверами ODP.Net Oracle?

(т.е. есть ли какое-либо преимущество для перехода к управляемому драйверу, кроме простоты архитектуры/развертывания)

Ответ 1

Я хотел бы поделиться некоторыми результатами. Я думаю, что небольшая нехватка производительности стоит по сравнению с легкостью развертывания.

enter image description here

Примечание: seg означает секунды. Извините.

Конечно, это простой тест, и есть несколько тем, которые не рассматриваются как пул подключений, стабильность, надежность и т.д.

Важно отметить, что сценарии выполнялись 100 раз. Таким образом, временные величины являются средними из 100 исполнений.

Ответ 2

Пули из видео быстрого запуска:

  • Меньше файлов (максимум 1 или 2 библиотеки)
  • Меньшая занимаемая площадь (10 МБ по сравнению с 200 МБ).
  • Простое развертывание
  • Такая же сборка для 32 и 64 бит (за исключением второй сборки MTS).
  • Безопасность доступа к коду

Я не уверен в производительности, но я сомневаюсь, что это будет сильно отличаться в любом случае. Я предполагаю, что оба драйвера обмениваются идентичным образом над "Oracle Net". Хотя могут быть небольшие различия в операциях на стороне клиента на стороне клиента, выполненных для подготовки команды и обработки результатов, эта служебная информация обычно составляет только часть времени относительно всей транзакции. Большая часть затрат/времени тратится на сервер в физическом IO и передает данные обратно клиенту. Это просто не то же самое, что и переход от поставщика oledb или драйвера System.DataAccess.OracleClient. Это еще один релиз от одной и той же компании RDBMS - они собираются использовать все те же трюки производительности, что и их другой клиент. Хотелось бы, чтобы я мог опубликовать исследование, но я бы предположил, что такого не существует, потому что в конце концов это было бы незаметно. Случай без новостей - хорошая новость - если новый провайдер был чем-то хуже, вы бы читали об этом.

Простота является достаточным основанием для переключения на эту ИМО. Подавляющее большинство разработчиков и администраторов не полностью понимают поставщика и его связь с неуправляемым клиентом. Путаница о домашнем предпочтении оракула, несоответствие версии, обновления и т.д. Постоянно появляется. Чтобы устранить эти вопросы, это было бы приятным изменением.

Ответ 3

Вот для вас все, что вам нужно. Мне потребовалось пару недель, чтобы понять, почему драйверы Oracle Managed не будут подключаться с помощью ef6. Если ваша база данных имеет следующие алгоритмы целостности данных, вы ДОЛЖНЫ использовать неуправляемые драйверы!

похоронен глубоко в документации оракула!!! СПАСИБО ORACLE!!!!! введите описание изображения здесь

Ответ 4

Более простое развертывание и независимость от битов - это действительно приятные преимущества, но вы должны полностью оценить типичное использование драйвера. Я столкнулся почти с 50% -ным недостатком производительности при использовании нового управляемого драйвера в 64-битных процессах. Другие люди сообщают о утечке памяти и т.д. На форуме Oracle: https://forums.oracle.com/community/developer/english/oracle_database/windows_and_.net/odp.net. Похоже, что это типичный продукт Oracle для багги, которому требуется еще несколько месяцев/лет:/

Ответ 5

Имейте в виду, что пользовательские типы еще не поддерживаются. Это может быть причиной не перехода на управляемый драйвер.

См. этот документ Oracle для различий между управляемой и неуправляемой версией:

http://docs.oracle.com/cd/E16655_01/win.121/e17732/intro004.htm