首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在木星笔记本中获取数据花费的时间太长了

在木星笔记本中获取数据花费的时间太长了
EN

Stack Overflow用户
提问于 2022-10-25 03:12:06
回答 1查看 26关注 0票数 0

我希望使用以下代码从表中获取所有行:

代码语言:javascript
代码运行次数:0
运行
复制
table_row_count = 1000000
batch_size = 10000

sql = """SELECT t.*
FROM (
    SELECT ROWNUM AS row_num,
           sub_t.*
    FROM (
        SELECT name_employer
        FROM my_table
        WHERE section = 'OTHER'
    ) sub_t
) t
WHERE t.row_num BETWEEN :LOWER_BOUND AND :UPPER_BOUND"""

data = []
for lower_bound in range(0, table_row_count, batch_size):
    cursor.execute(sql, {'LOWER_BOUND': lower_bound, 
                         'UPPER_BOUND': lower_bound + batch_size - 1})

    for row in cursor.fetchall():
       data.append(row)

代码的原始源代码:Oracle: fetchall()停止使用大SELECT语句

然而,这需要永远的时间。我的数据有五百万。一排排。还有别的办法吗?

EN

回答 1

Stack Overflow用户

发布于 2022-10-26 11:15:20

对于较大的结果集,增加arraysize。尝试类似于cursor.arraysize = 10000的内容,然后根据数据和性能要求调整大小。

请参阅甲骨文手册。

您可能还想看看https://github.com/cjbj/cx-oracle-notebooks中的最佳实践

还可以看到甲骨文发布公告 --是时候升级到python了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74188756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档