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

标签 python-2.7 pyqt cx-oracle

我使用以下示例脚本使用 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-900 mb 的 RAM。
我知道我可以将其保存在文件中而不是存储在列表中,但我使用这个列表来显示使用 QTABLEVIEW 和 QABSTRACTTABLE 模型的表格。

是否有任何替代或更有效的方法可以最大限度地减少存储此数据的内存使用量并使用它来显示我的表格?

最佳答案

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

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

关于python-2.7 - oracle数据库大数据的内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22088032/

相关文章:

django - 导入错误 : No module named local

python - 从pyqt中的框架中删除所有内容

python - 如何阻止 QSvgWidget 生成它自己的窗口

Python 安装工具 : install pacakge dependencies from a local repository

python - 从 NLTK 中的 token 中删除 URL 特征

python-2.7 - 为什么从一行中提取变量时,用于将数据发送到 Slack Web Hook 的 Python 脚本不起作用?

python-2.7 - 如何处理 cx_Oracle 和 python 2.7 中的 unicode 数据?

python - 将 pyqtgraph 图嵌入到 QT .ui 中?

python - 有没有办法从 Python 运行保存的 SQL 查询(使用 cx_Oracle)?

python - cx_Oracle.InterfaceError : Unable to acquire Oracle environment handle in linux