SQL Server表分区,幕后发生了什么?

SQL Server表分区,幕后发生了什么?,sql,sql-server-2008,partitioning,Sql,Sql Server 2008,Partitioning,我正在处理仓库中超大事实表的表分区。我以几种不同的方式执行了脚本。有无非聚集索引。有了索引,它似乎可以显著地扩展日志文件,而没有非聚集索引,它似乎无法扩展日志文件,但由于重建了索引,它需要更多的时间来运行 我要寻找的是任何链接或信息,这些链接或信息是关于在拆分表分区时在幕后发生的事情,特别是日志文件。我认为,要从理论上解释发生了什么(在一定程度上)并不难。在幕后,每个分区都有一个不同的HoBT,这在正常语言中意味着每个分区实际上都位于它自己的隐藏表上 因此,将分区拆分理论化(假设数据正在移动)将

我正在处理仓库中超大事实表的表分区。我以几种不同的方式执行了脚本。有无非聚集索引。有了索引,它似乎可以显著地扩展日志文件,而没有非聚集索引,它似乎无法扩展日志文件,但由于重建了索引,它需要更多的时间来运行


我要寻找的是任何链接或信息,这些链接或信息是关于在拆分表分区时在幕后发生的事情,特别是日志文件。

我认为,要从理论上解释发生了什么(在一定程度上)并不难。在幕后,每个分区都有一个不同的HoBT,这在正常语言中意味着每个分区实际上都位于它自己的隐藏表上

因此,将分区拆分理论化(假设数据正在移动)将涉及:

  • 将数据插入到新表中
  • 从旧表中删除数据
NC索引可以计算出来,但取决于是否存在聚集索引,理论将发生变化。索引是否与分区对齐也很重要

如果表(CL或Heap)上有更多的信息,我们可以进一步对此进行理论化

如果配分函数由 分区表和拆分会导致 两者都包含的分区 数据,SQL Server将数据移动到 新分区。这场数据运动 将导致事务日志增长 插入和删除

这篇文章来自微软的一篇文章

看起来它是从旧分区中删除并插入到新分区中。这可以解释t-log的增长