【问题标题】:Transfer large amount of data from text file to SQL Server database [duplicate]将大量数据从文本文件传输到 SQL Server 数据库 [重复]
【发布时间】:2021-08-05 02:44:37
【问题描述】:

我需要设置自动化流程来将大量数据(显然是数百万行)从平面文件传输到 SQL Server。我知道我们可以使用 Java IO 库来做到这一点,但这会非常慢。还有哪些其他选项可以加快执行速度?

【问题讨论】:

  • 这是您之前关闭的问题的副本。请不要那样做。

标签: sql-server file data-transfer


【解决方案1】:

如果文件是 .sql,那么我建议使用 sqlcmd 文件来导入它。如果它不是那种格式,那么你可以在 c# 中使用blockingCollection并行读取一个大文件,这也很酷,因为你可以限制有多少线程将执行导入,你甚至可以有逻辑得到核心数等,然后根据需要决定线程数。

【讨论】:

    【解决方案2】:

    在 SQL Server 中,有一个单独的工具 bcp.exe 可用于此目的。这是向表中插入数据的最快方式。

    Read more on bcp

    加载 tsv 文件的简单示例(bcp 的默认格式为 tsv)

    bcp.exe DBName.SchemaName.TableName IN "C:\inputFile.tsv" -c -T -S "TargetServerName"
    

    如果你想使用 tsql 路由,你可以使用BULK INSERT 命令。您需要先生成格式文件,然后使用BULK INSERT 命令插入到表格中。

    BCP DBName.SchemaName.TableName format nul 
    -x -S ServerName -c -f C:\inputFileFormat.xml-t, -T
    
    BULK INSERT DBName.SchemaName.TableName
    FROM "C:\inputFile.tsv"
    WITH (FORMATFILE = 'C:\inputFileFormat.xml');
    GO
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 2014-01-07
      相关资源
      最近更新 更多