Sobes.tech
Junior — Middle

Mikor érdemes közvetlen SQL-lekérdezést írni az ORM réteg használata helyett?

sobes.tech MI

Válasz az MI-től

Ajánlott közvetlen SQL-lekérdezéseket írni az ORM használata helyett, amikor:

  • Bonyolult vagy speciális lekérdezést kell végrehajtani, amit az ORM nehezen vagy hatékonytalanul fejez ki.
  • A teljesítményt optimalizálni kell, például összetett JOIN-ok, al-lekérdezések vagy aggregáló függvények használatával.
  • Olyan funkciókat kell használni, amelyek a DBMS-re jellemzők, és az ORM nem támogatja.
  • Nagyszámú műveletet (bulk insert/update) kell végrehajtani, amelyeket az ORM lassan hajt végre.

Python példával SQLAlchemy használatával:

from sqlalchemy import text

# Komplex aggregációhoz közvetlen SQL-lekérdezés
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)