Sql 加快Python执行速度

Sql 加快Python执行速度,sql,python-3.x,odbc,pypyodbc,Sql,Python 3.x,Odbc,Pypyodbc,我将数据从一个数据库插入到另一个数据库,因此我有两个连接(Conn1和Conn2)。下面是代码(使用pyodbc) 上面的部分运行得非常快 stmt = "INSERT INTO TABLE(column) values (?)" Conn2_Cursor.executemany(stmt, Conn1_array) Conn2.commit() 这部分速度非常慢。我还尝试使用cursor.execute执行for循环,一次插入每一行,但这也非常慢。我做错了什么?我能做些什么来加速它?谢

我将数据从一个数据库插入到另一个数据库,因此我有两个连接(Conn1和Conn2)。下面是代码(使用pyodbc)

上面的部分运行得非常快

 stmt = "INSERT INTO TABLE(column) values (?)"
 Conn2_Cursor.executemany(stmt, Conn1_array)
 Conn2.commit()
这部分速度非常慢。我还尝试使用cursor.execute执行for循环,一次插入每一行,但这也非常慢。我做错了什么?我能做些什么来加速它?谢谢你看


我想我还应该补充一点,Conn1数据只有~50k行。我在开始时还有一些设置代码没有包括在内,因为它与问题无关。插入大约需要15分钟。作为比较,将输出写入csv文件大约需要25秒。

是的,
pypyodbc下的executemany
为每一行发送单独的INSERT语句。它的作用与在循环中执行单个
调用的作用相同。鉴于PyODBC不再处于积极开发中,这一点不太可能改变


但是,如果您使用的是兼容的驱动程序,如“用于SQL Server的ODBC驱动程序xx”,并切换到pyodbc,则可以使用其选项显著加快插入速度。有关更多详细信息,请参阅。

您的提交在哪里?抱歉,只是添加了它-我在代码主体中有它,但最初没有包含在这里。谢谢你看。
 stmt = "INSERT INTO TABLE(column) values (?)"
 Conn2_Cursor.executemany(stmt, Conn1_array)
 Conn2.commit()