【问题标题】:Importing database takes a lot of time导入数据库需要很多时间
【发布时间】:2019-09-16 11:40:49
【问题描述】:

我正在尝试使用以下代码在数据框中导入包含 81462 行的表:

sql_conn = pyodbc.connect('DRIVER={SQL Server}; SERVER=server.database.windows.net; DATABASE=server_dev; uid=user; pwd=pw') 
query = "select * from product inner join brand on Product.BrandId = Brand.BrandId"
df = pd.read_sql(query, sql_conn)

而且整个过程需要很长时间。我想我已经 30 分钟了,它仍在处理中。我认为这不太正常 - 那么我应该如何导入它以便处理时间更快?

【问题讨论】:

  • 尝试导入一小部分数据并检查连接是否正常
  • 已经做到了。使用 200 可以正常工作,几乎可以立即导入。
  • FETCH NEXT 10000 怎么样?
  • 添加chunksize
  • @VikasP 即使我添加for chunk in pd.read_sql(query, sql_conn, chunksize=500): df=chunk 仍然需要很多时间。

标签: python pandas pyodbc


【解决方案1】:

感谢@RomanPerekhrest。 FETCH NEXT 在 1-2 分钟内导入所有内容。

SELECT product.Name, brand.Name as BrandName, description, size FROM Product inner join brand on product.brandid=brand.brandid ORDER BY Name OFFSET 1 ROWS FETCH NEXT 80000 ROWS ONLY

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-28
    • 2021-08-07
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    相关资源
    最近更新 更多