【问题标题】:Multiple Cursors versus Multiple Connections多个光标与多个连接
【发布时间】:2019-05-08 14:12:17
【问题描述】:

我正在用 Python 构建一个自动化程序,它从数据库表中获取一些数据并填充一个 Excel 工作表。我正在使用 cx_Oracle 模块来建立连接。大约有 44 个查询,每个查询获取大约 200 万行数据,这使得这个脚本运行了一个小时。所以我打算使用线程模块来加速这个过程。虽然我很困惑是使用多个连接(大约 4 个)还是使用更少的连接(比如 2 个)和每个连接多个游标。

查询是相互独立的。它们是用于获取数据的select 语句,不会以任何方式操作表。

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

【问题讨论】:

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


    【解决方案1】:

    Oracle 连接实际上一次只能做一件事。具体来说,虽然一个数据库会话在任何时候都可以有多个打开的游标,但它只能执行其中一个。

    因此,在单个连接中使用多个游标不会有任何改进。

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

    【讨论】:

    猜你喜欢
    • 2013-09-03
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    • 1970-01-01
    相关资源
    最近更新 更多