SQLAlchemy Hash加入

时间:2016-05-10 12:05:38

标签: python sql sql-server join sqlalchemy

我有一个查询,我想加入一个子查询,使用outerjoin函数调用可以正常工作,问题是发出的查询运行时间为2-3s,而几乎是在显式指定连接时SQL Server控制台中的LEFT HASH JOIN方法。

有没有办法可以强迫SQLAlchemy发出LEFT HASH JOIN语句

query = query.outerjoin(sub_query, join_conditions, method='hash')

?我已经尝试在StackOverflow和互联网上的其他地方搜索,但一直无法找到任何相关内容。我正在使用Microsoft SQL Server,如果这与结果有任何关系。

如果因为使用ORM的简单性而牺牲了性能,那么这是一个我很乐意做出的权衡,但显然我不愿意这样做!

1 个答案:

答案 0 :(得分:0)

在进一步阅读之后,正如Ilija在评论中提到的,这不是SQLAlchemy目前可能的事情。

但是,同样的读数也表明,在SQL查询上指定连接提示通常应该只是查询优化计划的最后一步 - 例如here

我没有尝试对我在SQLAlchemy之后的功能进行修补,而是重新检查了我在问题中缩写的join_conditions的内容,发现通过调整连接逻辑,我可以让SQL Server生成更快的执行计划。