使用单个时间顺序分区回收文件组中的空闲空间

从这里移动(在那里没有coments)

题:

什么是回收空间大(数百GB)文件组与单个分区的时间顺序sorting,没有索引碎片,不能承受索引碎片正确的方式? 我听到很多关于收缩的坏消息(比如http://www.brentozar.com/archive/2009/08/stop-shrinking-your-database-files-seriously-now/ )。 索引碎片化和重build的时间复杂性是我最关心的问题

背景:

我有一个巨大的桌子(几TB),具有以下属性:

  • 数据仅按时间顺序存储(列“C”)
  • 索引基于维度“A”,然后是“C”
  • 表是基于'A'分区的,每个分区都有它自己的文件组(具有10%的FileGrowth)

所以数据只能附加到每个分区,并且存储工作超快。

我们还想基于时间开始分区(例如,每个分区的分区和维度'A';每个分区在不同的文件组中)。 但是有两个问题:

  • 我们不能浪费磁盘空间(例如,每个历史分区的可用空间有10%是永远不会再被触摸的)。
  • 我们不能绝对负担任何索引碎片(就像我们的查询数据量非常大)。

能够在每个季度结束之后能够从文件组的最后删除可用空间将是很好的,然后例如将文件组标记为只读