SQLAlchemy:2个会话对象的效果?

时间:2014-01-17 01:25:11

标签: python sqlalchemy

由于使用了2 session次呼叫,以下是否会使用连接池中的2个DB连接?

users_from_contacts = db.session.query(User).join(Email, Email.user_id == User.id).join(Contacts, Contacts.email_id = Email.id)
users_from_past = db.session.query(User).join(Group, Group.user_id == User.id)

all_users = users_from_contacts.union_all(users_from_past).all()

1 个答案:

答案 0 :(得分:1)

不,因为Session在正在进行的单连接事务中运行,除非autocommit设置为非默认值True,而两个因为只有一个当调用.all()方法时,从上面的代码发出的SQL查询。

相关文档:

http://docs.sqlalchemy.org/en/rel_0_9/orm/session.html#managing-transactions

http://docs.sqlalchemy.org/en/rel_0_9/orm/tutorial.html#returning-lists-and-scalars