【问题标题】:Most performant way of inserting 3GB .tsv into SQL Server将 3GB .tsv 插入 SQL Server 的最高效方式
【发布时间】:2017-02-02 11:06:10
【问题描述】:

将 3GB .tsv 插入 SQL Server 的最高效方法是什么?

我不知道列名,每当我尝试预览它时,都需要很长时间......

如果先在 SQL Server 中创建表然后插入.tsv 比较容易?我可以联系.tsv 的提供者并找出确切的列名。

【问题讨论】:

  • 连架构都不知道的情况下谈不上性能。文件没有标题行吗?无论如何,SQL Server 的 SSIS 适用于大多数平面文件,甚至可以对列类型做出相当不错的猜测。它是隐藏在Import Data 向导背后的基础设施。该向导还可以为您创建表格。
  • 性能取决于您的硬件和表架构。例如,如果您有一个磁盘,则使用分区没有多大意义。确保在开始加载之前删除/禁用任何索引并在之后重建它们。
  • 您可以使用 Windows more 命令打印文件的前 35 行左右(1 个 CMD 全屏)。例如,在 CMD 类型中:more filename.tsv

标签: sql-server csv import


【解决方案1】:

我认为最好的办法是提取一组行数,并用它来估计一些广泛的、包罗万象的列,并创建一个可以加载到分析完整数据集的表。

您可以使用此处讨论的小脚本文件执行此操作:
VBScript - skip and read lines in text file

一旦您了解了您的数据结构,根据我的经验,将数据加载到 SQL Server 中的最快方法(尽管远非最方便)是批量复制程序实用程序或 BCP:
https://msdn.microsoft.com/en-us/library/ms162802.aspx

【讨论】:

    【解决方案2】:

    将数据插入 SQLServer 的更快方法是使用批量插入: https://msdn.microsoft.com/en-us/library/ms188365.aspx 但您需要了解数据架构。

    【讨论】:

    • SSIS 正在使用批量插入。 OP 提到了预览,这可能意味着使用了 SSIS 或导入向导
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多