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