我正在尝试使用Python SQLAlchemy在Azure SQL数据库中插入200000行。 根据SQLAlchemydocumentation,我尝试了最快的批量插入方法:批量插入映射和核心
然而插入速度却低得离谱:每7.5秒100行。 当我使用本地数据库运行相同的代码时,代码会在几秒钟内插入10000条记录
SQL表I insert to由4列组成: [Data]([Date]Date、[sId]int、[mId]int、[Value]float)带有主键(Date,sId,mId)和外键sId,mId引用了相当小的表(每个表中有<;10K行)
你知道是什么导致了本地和Azure SQL db之间如此巨大的差异吗
非常感谢@Gord Thompson
我们可以在python中设置Fast Executemany Mode
Pyodbc驱动程序增加了对“快速执行”执行模式的支持,这在使用Microsoft ODBC驱动程序时大大减少了DBAPI
executemany()
调用的往返次数,用于适合内存的有限大小批处理。当要使用ExecuteMay调用时,可以通过在DBAPI游标上设置标志.fast_executemany
来启用该功能。SQLAlchemy pyodbc SQL Server方言支持在将.fast_executemany
标志传递给create_engine()
时自动设置此标志;请注意,ODBC驱动程序必须是Microsoft驱动程序才能使用此标志:我们很高兴它能帮助您解决问题
相关问题 更多 >
编程相关推荐