Короткий ответ ORM даёт единообразие, безопасность от SQL-инъекций «из коробки», переносимость и скорость разработки типовых CRUD-операций, но на сложных аналитических запросах может генерировать неоптимальный SQL; raw SQL (или материализованное представление/хранимая процедура) даёт полный контроль над производительностью, но жертвует переносимостью и типобезопасностью ORM и требует отдельного процесса тестирования SQL-кода. Как это работает подробнее ORM строит SQL динамически на основе объектной модели и может генерировать как эффективный запрос для простых случаев, так и избыточные JOIN/подзапросы или N+1 без явного указания стратегий загрузки; raw SQL пишется и оптимизируется напрямую под конкретную СУБД с полным доступом к её специфичным возможностям (window functions, CTE). Сравнение Компромисс. Решение нужно принимать по конкретному узкому месту, подтверждённому профилированием (EXPLAIN ANALYZE), а не предположениями «ORM всегда медленный»; критерии — частота изменения запроса, поддерживаемость для ко