小编Nea*_*ras的帖子

使用 SQL Server 提高 pandas 的 to_sql() 性能

我来找你是因为我无法解决pandas.DataFrame.to_sql()方法的问题。

我已经在我的脚本和数据库之间建立了连接,我可以发送查询,但实际上它对我来说太慢了。

我想找到一种方法来提高我的脚本的性能。也许有人会找到解决方案?

这是我的代码:

  engine = sqlalchemy.create_engine(con['sql']['connexion_string'])
  conn = engine.connect()
  metadata = sqlalchemy.Metadata()
  try : 
    if(con['sql']['strategy'] == 'NEW'): 
      query = sqlalchemy.Table(con['sql']['table'],metadata).delete()
      conn.execute(query)
      Sql_to_deploy.to_sql(con['sql']['table'],engine,if_exists='append',index = False,chunksize = 1000,method = 'multi')
    elif(con['sql']['strategy'] == 'APPEND'):
      Sql_to_deploy.to_sql(con['sql']['table'],engine,if_exists='append',index = False,chunksize = 1000,method = 'multi')
    else:
      pass
  except Exception as e:
    print(type(e))
Run Code Online (Sandbox Code Playgroud)

当我退出 chunksize 和方法参数时,它正在工作,而且太慢了,这一刻它太慢了(30000 行几乎需要 3 分钟)。当我输入这些参数时,我得到一个sqlalchemy.exc.ProgrammingError...

感谢您的帮助 !

python sql-server sqlalchemy pyodbc pandas

3
推荐指数
1
解决办法
6564
查看次数

标签 统计

pandas ×1

pyodbc ×1

python ×1

sql-server ×1

sqlalchemy ×1