SQL - 对索引和事务日志的分区效果

时间:2012-07-09 18:38:08

标签: sql-server database-partitioning transaction-log reindex

问题:我想知道是否可以在不填写事务日志的情况下在表上应用索引。

细节:我有一张800GB的桌子。几个月前,我开始在它上面应用一个索引,并填写了交易日志(原因很明显 - 我甚至不敢尝试)。相反,我不得不再次创建表,应用我想要的索引,然后复制记录。

现在我们将在此表上设置分区。我想知道我是否删除了聚簇索引并在分区布局上应用新的聚簇索引,如果它仍然会填满事务日志(假设我每个分区有1000万行)?或者tlog是否会被填满,因为索引也会被分区,这将允许SQL服务器更快地完成索引并能够检查点?

有人有任何想法吗?否则我可以再次重新创建表并将分区内容应用到它并重新填充它,但显然更多涉及。

谢谢!

1 个答案:

答案 0 :(得分:0)

应用分区方案将导致巨大的日志,是的。

首先,如果可能的话,我会建议你看看是否能达到minimally logged operation。脱机CREATE INDEX受最小日志记录的限制,前提是数据库处于批量记录模式。

如果不可能(例如,需要完全恢复),我会考虑在线移动到分区表。在线操作小批量运行并经常提交。只要你经常进行日志备份,它就不会那么大。