Моя компания находится в процессе перезаписи существующего приложения с нуля. Это приложение, среди прочих задач, выполняет сложные SQL-запросы с данными заказа и счета для создания отчетов о продажах. Запросы создаются динамически в зависимости от того, какие критерии выбраны пользователем, поэтому они могут быть довольно сложными, если выбрано много критериев. В настоящее время производительность достойная, но не большая.
Теперь для новой версии мы хотели бы использовать ORM, возможно, NHibernate, потому что он, по-видимому, единственный, поддерживающий Oracle Lite (приложение использует Oracle или Oracle Lite в зависимости от того, работает ли он в подключенном или отключенном режиме). Но я беспокоюсь о производительности запросов, созданных NHibernate. Я работал с другими ORM до (Linq to SQL, Entity Framework), но запросы были довольно простыми, поэтому проблем с производительностью не было.
Итак, прежде чем принять решение об использовании ORM или остаться с простым SQL, я хотел бы знать, насколько хорошо эти инструменты обрабатывают сценарии, такие как внешние соединения, подзапросы и т.д. Как вы думаете, ORM (особенно NHibernate) подходит для использования в описанном выше сценарии отчетности? Должен ли я беспокоиться о производительности для сложных запросов?
Любая обратная связь будет с благодарностью