SQL Server:Bulk将数据加载到具有多个文件组的分区表中
问题描述:
我试图加载一系列CSV文件,大小从100MB到20GB(总共大约3TB)。所以,我需要每一次性能提升。我打算使用文件分组和分区作为一种手段。我进行了一系列测试以查看最佳方法。SQL Server:Bulk将数据加载到具有多个文件组的分区表中
首先,我试过各种文件组合;我得到最好的是当我加载到一个文件组上的表;分配给它的多个文件,并且它们都位于一张光盘上。这种组合胜过了我有多个文件组的情况。
下一步自然就要进行分区了。 ODDLY,我检查的所有分区组合都具有较低的性能。我试着定义各种分区功能/方案和各种文件组合。但是全部显示更低的加载速度。
我想知道我在这里错过了什么!?
到目前为止,我设法在3分钟内加载(使用批量插入)1GB csv文件。任何想法都非常感谢。
答
为了获得最佳数据加载速度,您需要首先了解SQL Server数据加载过程,这意味着了解SQL Server如何实现下述优化。
- 最小日志记录。
- 并行加载。
- 锁定优化。
这两篇文章将详细解释如何实现所有上述优化的细节。 Fastest Data Loading using Bulk Load and Minimal Logging和Bulk Loading data into HEAP versus CLUSTERED Table
希望这有助于。