Python 将cx_Oracle arraysize参数与pandas read_sql一起使用

Python 将cx_Oracle arraysize参数与pandas read_sql一起使用,python,pandas,cx-oracle,Python,Pandas,Cx Oracle,当使用cx_Oracle从Oracle中选择大量数据时,我发现无论是使用pandasread_sql还是cx_Oracle Cursorfetchall()方法,速度都非常慢 通过增加游标的arraysize属性,性能得到了极大的提高,这使我能够从fetchall()中获得良好的性能。pandasread_sql()将一个连接对象作为输入,并且光标是在函数中创建的,因此我不清楚如何应用相同的设置并仍然利用read_sql()函数。我错过什么了吗 使用sqlalchemy创建连接到数据库的引擎时,

当使用cx_Oracle从Oracle中选择大量数据时,我发现无论是使用pandas
read_sql
还是cx_Oracle Cursor
fetchall()
方法,速度都非常慢


通过增加游标的
arraysize
属性,性能得到了极大的提高,这使我能够从
fetchall()
中获得良好的性能。pandas
read_sql()
将一个
连接
对象作为输入,并且光标是在函数中创建的,因此我不清楚如何应用相同的设置并仍然利用
read_sql()
函数。我错过什么了吗

使用
sqlalchemy
创建连接到数据库的引擎时,可以传递
arraysize
参数,以便在创建游标时使用:

import sqlalchemy
engine = sqlalchemy.create_engine("oracle+cx_oracle://user:pass@host:port/dbname", arraysize=50)
pd.read_sql("query ...", engine)

请参阅此处的文档:有关使用
sqlalchemy
创建连接到数据库的引擎时的“其他连接参数”,可以传递
arraysize
参数,以便在创建游标时使用:

import sqlalchemy
engine = sqlalchemy.create_engine("oracle+cx_oracle://user:pass@host:port/dbname", arraysize=50)
pd.read_sql("query ...", engine)

请参阅此处的文档:有关“附加连接参数”

的详细信息,请参见。谢谢奇怪的是,在甲骨文自己的网站上并没有更好的记录。效果不错。谢谢奇怪的是,在甲骨文自己的网站上没有更好的记录。