加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python-2.7 – 来自oracle数据库的大数据的内存管理

发布时间:2020-12-20 13:40:42 所属栏目:Python 来源:网络整理
导读:我使用下面的示例脚本使用cx_oracle从oracle数据库中提取大数据: from cx_Oracle import connectTABLEDATA = []con = connect("user/password@host")curs = con.cursor()curs.execute("select * from TABLE where rownum 100000")for row in curs: TABLEDAT
我使用下面的示例脚本使用cx_oracle从oracle数据库中提取大数据:

from cx_Oracle import connect

TABLEDATA = []

con = connect("user/password@host")
curs = con.cursor()
curs.execute("select * from TABLE where rownum < 100000")

for row in curs:
    TABLEDATA.append([str(col) for col in list(row)])

curs.close()                        
con.close()

存储在列表中的问题是它最终达到大约800-900mb的RAM使用.
我知道我可以将其保存在文件中而不是存储在列表中但我使用此列表来使用QTABLEVIEW和QABSTRACTTABLE MODEL显示表.

有没有替代或更有效的方法,我可以最小化存储这些数据的内存使用,并使用它来显示我的表?

解决方法

我尝试了多个possobilities,我认为qsqltablemodel不适合我.虽然它直接从数据库加载数据,但随着您向下滚动它会在表中加载越来越多的数据,因此内存使用量不断增加.

我认为最理想的工作是能够在模型中加载设定的行数.向下滚动时,它会加载新行,但同时也会卸载已存在的行.所以在任何时候我们只在模型中加载了设置的行数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读