【发布时间】:2021-03-30 04:07:09
【问题描述】:
我有一个包含 27 列和约 45k 行的 pandas 数据框,我需要将其插入到 SQL Server 表中。
我目前正在使用以下代码,插入需要 90 分钟:
conn = pyodbc.connect('Driver={ODBC Driver 17 for SQL Server};\
Server=@servername;\
Database=dbtest;\
Trusted_Connection=yes;')
cursor = conn.cursor() #Create cursor
for index, row in t6.iterrows():
cursor.execute("insert into dbtest.dbo.test( col1, col2, col3, col4,col5,col6,col7,col8,col9,col10,col11,col12,col13,col14,,col27)\
values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",
row['col1'],row['col2'], row['col3'],,row['col27'])
我也尝试过使用 executemany 加载,这需要更长的时间才能完成,将近 120 分钟。
我真的在寻找更快的加载时间,因为我需要每天运行它。
【问题讨论】:
-
你试过
pandas.to_sql(pandas.pydata.org/pandas-docs/stable/reference/api/…)吗?并将'append'传递给if_exists参数?
标签: sql-server pandas pyodbc execute