我有一个查询,我想加入一个子查询,该查询使用outerjoin函数调用可以很好地工作,问题是发出的查询在2-3 s中运行,当在server控制台中显式地将join方法指定为LEFT HASH JOIN时几乎立即运行。
是否有一种方法可以强制SQLAlchemy按照
query = query.outerjoin(sub_query, join_conditions, method='hash')?我尝试过在StackOverflow和其他互联网上搜索,但是没有找到任何相关的东西。如果这对结果有任何影响,我将使用。
如果这是为了使用ORM的简单性而牺牲性能的情况,那么这是我很乐意做的一种权衡,但显然我不喜欢!
发布于 2016-05-10 21:19:27
经过进一步的阅读,正如Ilija在他们的评论中提到的那样,这在SQLAlchemy中是不可能的。
然而,同样的阅读也表明,在SQL查询上指定联接提示通常只应该是查询优化计划(例如here )中的最后一步。
我没有尝试将我想要的功能修改到SQLAlchemy中,而是返回并重新检查了我在问题中缩写的join_conditions的内容,发现通过调整连接逻辑,我可以让Server生成一个更快的执行计划。
https://stackoverflow.com/questions/37138046
复制相似问题