Sobes.tech
Junior — Middle

Quando é apropriado escrever uma consulta SQL direta em vez de usar a camada ORM?

sobes.tech IA

Resposta da IA

É aconselhável escrever consultas SQL diretas em vez de usar ORM quando:

  • Precisa executar uma consulta complexa ou específica que seja difícil ou ineficiente de expressar através do ORM.
  • É necessário otimizar o desempenho, por exemplo, usando JOINs complexos, subconsultas ou funções agregadas.
  • É preciso usar funcionalidades específicas do SGBD que o ORM não suporta.
  • Precisa realizar operações em massa (inserções/atualizações em lote) que o ORM executa lentamente.

Exemplo em Python usando SQLAlchemy:

from sqlalchemy import text

# Consulta SQL direta para agregação complexa
result = session.execute(text("""
    SELECT user_id, COUNT(*) as orders_count
    FROM orders
    WHERE status = 'completed'
    GROUP BY user_id
"""))

for row in result:
    print(row.user_id, row.orders_count)