SQL Server:Bulk将数据加载到具有多个文件组的分区表中

SQL Server:Bulk将数据加载到具有多个文件组的分区表中

问题描述:

我试图加载一系列CSV文件,大小从100MB到20GB(总共大约3TB)。所以,我需要每一次性能提升。我打算使用文件分组和分区作为一种手段。我进行了一系列测试以查看最佳方法。SQL Server:Bulk将数据加载到具有多个文件组的分区表中

首先,我试过各种文件组合;我得到最好的是当我加载到一个文件组上的表;分配给它的多个文件,并且它们都位于一张光盘上。这种组合胜过了我有多个文件组的情况。

下一步自然就要进行分区了。 ODDLY,我检查的所有分区组合都具有较低的性能。我试着定义各种分区功能/方案和各种文件组合。但是全部显示更低的加载速度。

我想知道我在这里错过了什么!?

到目前为止,我设法在3分钟内加载(使用批量插入)1GB csv文件。任何想法都非常感谢。

为了获得最佳数据加载速度,您需要首先了解SQL Server数据加载过程,这意味着了解SQL Server如何实现下述优化。

  1. 最小日志记录。
  2. 并行加载。
  3. 锁定优化。

这两篇文章将详细解释如何实现所有上述优化的细节。 Fastest Data Loading using Bulk Load and Minimal LoggingBulk Loading data into HEAP versus CLUSTERED Table

希望这有助于。