0

我正在尝试加载一系列 CSV 文件,大小从 100MB 到 20GB(总计约 3TB)。因此,我需要尽我所能增强性能。我的目标是使用文件分组和分区作为一种手段。我进行了一系列测试以查看最佳方法。

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

下一步自然是进行分区。奇怪的是,我检查过的所有分区组合的性能都较低。我尝试定义各种分区功能/方案和各种文件组组合。但都显示出较低的加载速度。

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

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

4

1 回答 1

0

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

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

这两篇文章将详细解释如何详细实现上述所有优化。使用 Bulk Load 和 Minimal Logging 的最快数据加载以及将数据批量加载到 HEAP 与 CLUSTERED 表

希望这可以帮助。

于 2017-09-12T09:18:49.510 回答