pyodbc-非常慢的批量插入速度
|
使用此表:
CREATE TABLE test_insert (
col1 INT,
col2 VARCHAR(10),
col3 DATE
)
以下代码需要40秒钟才能运行:
import pyodbc
from datetime import date
conn = pyodbc.connect(\'DRIVER={SQL Server Native Client 10.0};\'
\'SERVER=localhost;DATABASE=test;UID=xxx;PWD=yyy\')
rows = []
row = [1, \'abc\', date.today()]
for i in range(10000):
rows.append(row)
cursor = conn.cursor()
cursor.executemany(\'INSERT INTO test_insert VALUES (?, ?, ?)\', rows)
conn.commit()
与psycopg2等效的代码只需3秒钟。我不认为mssql比postgresql慢得多。关于使用pyodbc时如何提高批量插入速度的任何想法?
编辑:在戈尔兹的发现后添加一些注释
在pyodbc中,executemany
的流为:
准备陈述
为每组参数循环
绑定参数集
执行
在ceODBC中,executemany
的流为:
准备陈述
绑定所有参数
执行
没有找到相关结果
已邀请:
6 个回复
剿畦缄饥小
壬驴拿歪竞
联课
田眯衅
选项来帮助解决此问题。有关详细信息,请参见此答案。
峨躬坎抬焚
搜洼挂时