Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据从oracle提取到python数据帧的速度非常慢_Python_Oracle_Pandas - Fatal编程技术网

将数据从oracle提取到python数据帧的速度非常慢

将数据从oracle提取到python数据帧的速度非常慢,python,oracle,pandas,Python,Oracle,Pandas,我正在尝试使用cx_Oracle模块从Oracle数据库提取数据并将其放入数据帧 使用fetchall()函数时,如下所示 cursor = con.cursor() cursor.arraysize = 1000 results = cursor.execute("select * from TABLE1") rows = results.fetchall() 提取速度与使用R Oracle库进行提取非常相似,约为8秒(数据大小约为750000行和30列混合数据类型) 但是当使用Pandas

我正在尝试使用cx_Oracle模块从Oracle数据库提取数据并将其放入数据帧

使用fetchall()函数时,如下所示

cursor = con.cursor()
cursor.arraysize = 1000
results = cursor.execute("select * from TABLE1")
rows = results.fetchall()
提取速度与使用R Oracle库进行提取非常相似,约为8秒(数据大小约为750000行和30列混合数据类型)

但是当使用Pandas read_sql函数将其导入数据帧时,性能要差得多

df = pd.read_sql('select * from TABLE1',con)
使用此功能时,几乎需要30秒

我可以做些什么来优化数据帧的导入吗?

试试以下方法:

df_list = []
for chunk in pd.read_sql_query(sql , conn, chunksize=10):
    df_list.append(chunk)
frames=pd.concat(df_list, ignore_index=True)

还可以使用
pandas.io.sql.read\u sql

您是否尝试过使用
chunksize
参数?不确定这是否有用,但值得一试。我开始对此进行调查,但从我所做的搜索来看,手动分块/循环现在似乎已经内置到pandas read\u sql函数中。我会给它一个测试,看看它是否有区别。哦,我明白了。祝你好运。是的,使用分块没有任何改善