我正在尝试使用fast_executemany来加快df.to_sql插入的速度。我阅读了文档并将其添加到我的代码中,如下所示:
import pandas as pd
import sqlalchemy
import numpy as np
import random
#connect to database
server = 'Test'
database = 'Test'
driver = 'SQL+Server'
driver1 = 'ODBC+Driver+13+for+SQL+Server'
engine_stmt = ("mssql+pyodbc://@%s/%s?driver=%s" % (server, database, driver))
engine = sqlalchemy.create_engine(engine_stmt, fast_executemany=True)
connection = engine.connect()
当我在没有fast_executemany
的情况下运行此代码时,它可以工作,但插入需要相当长的时间。因此,我想使用该命令,但是将其与'SQL+Server'
驱动程序一起使用时出现错误。因此,我尝试根据文档更改驱动程序,'ODBC+Driver+13+for+SQL+Server'
出现以下错误:
def create_connect_args(self, url):
InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
所以我想这个驱动程序不适合我?我测试了几个不同的,但唯一有效的是'SQL+Server'
您的计算机上似乎缺少 ODBC 13 驱动程序。尝试安装它并再次运行脚本。
或者,尝试交换:
driver1 = 'ODBC+Driver+13+for+SQL+Server'
为
driver1 = 'ODBC+Driver+17+for+SQL+Server'