多个游标与多个连接

时间:2019-05-08 06:00:34

标签: python-3.x oracle cx-oracle

我正在用Python构建一个自动化程序,该自动化程序从数据库表中获取一些数据并填充一个Excel工作表。我正在使用cx_Oracle模块来建立连接。大约有44个查询,每个查询获取约200万行数据,这使该脚本运行了一个小时。因此,我计划使用线程模块来加快此过程。尽管我很困惑是使用多个连接(大约4个)还是使用较少的连接(例如2个),每个连接使用多个游标。

查询彼此独立。它们是select语句,用于获取数据,并且不以任何方式操纵该表。

我只需要使用这两种方法的利弊,以便可以决定如何编写脚本。我尝试了很多搜索,但奇怪的是我根本找不到任何相关信息。如果您将我指向任何类型的博客文章,那将是非常有帮助的。 谢谢。

1 个答案:

答案 0 :(得分:1)

Oracle连接一次只能做一件事。具体来说,尽管数据库会话一次可以有多个打开的游标,但它只能执行其中一个。

这样,通过在单个连接中使用多个游标,您将看不到任何改善。

也就是说,根据瓶颈,使用多个连接也可能看不到任何改善。在返回数据,访问磁盘等方面,带宽可能会受到限制。如果您可以以保持线程/连接数可变的方式进行编码,则可以进行调整,直到找到最佳结果为止。