Executando verificação de segurança...
2

Vou falar uma coisa que poucos falam com base em experiência de mercado:

SQLAlquemy é extremamente lento quando precisa fazer pesquisas muito pessadas com muitos joins. Na verdade, a maioria das ORM é. Isso é simplesmente porque eles geram uma camada a mais de abstração.

ORM é execelente para update, delete e insert em bancos que de fato usam arquiterura relacional. Mas lembre-se, ser SQL, não quer dizer que fizeram corretamente relaconal.

Exemplo de select até 4x mais rápido que usando ORM:

cursor.execute(f"""
  SELECT autor.aaa, autor.bbb, autor.ccc, xxxx.ddd AS nome_feed, sss.rrrr, ssss.ttttt,
   COUNT(*) AS total, CURRENT_TIMESTAMP()
              FROM db.sssss
              INNER JOIN db.sssss ON ssss.id = xxxx.id_feed
              LEFT JOIN db.autor ON autor.id = feed_evento.id_autor
              INNER JOIN db.sss ON sss.codigo_feed = sss.codigo
              INNER JOIN db.xxx ON xxxxx.codigo = tttttt.codigo_mantenedor
              LEFT JOIN db.yyyyy ON yyyy.id_feed = yyyyy.id
              LEFT JOIN db.tttt ON tttt.id = zzz.id_escopo_coleta
              GROUP BY autor.xxxxxx
              ORDER BY total DESC""")
rs = cursor.fetchall()

Você pode instâciar a conexão de forma que retorne um diciońario com a chave sendo o nome da coluna....

Isso curso nenhum fala, mas vale a pena a reflexão...

Carregando publicação patrocinada...
1

Ótima observação! Você fez essa mesma query com o SqlAlchemy na sua base e conseguiu levantar algumas métricas para comparar? Seria bem interessante só pra termos uma noção.