在全文索引重新填充期间可以截断LOG文件吗?

时间:2018-11-03 13:19:12

标签: sql-server logging sql-tuning

一个简单的问题...

作为数据库维护例程的一部分,我们有时会完全删除并重建全文索引及其基础的簇索引。

这很好用,除了一件事情,它没有问题: 重新创建聚簇索引后,我们执行一条语句重新创建全文索引:

CREATE FULLTEXT INDEX ON [dbo].[<ourtablename>] (<thefieldswewanttoindex>) KEY INDEX [<theclusteredindex>] ON [<thefulltextcatalog>] WITH CHANGE_TRACKING AUTO

这再次很好地工作,并且需要花费几个小时才能完成,这也很好,因为这是在停机期间完成的,并且不影响用户。但是有一件小事让我很烦。重新填充全文索引时,即:

SELECT FULLTEXTCATALOGPROPERTY('<thefulltextcatalog>', 'Populatestatus')

返回1,LOG文件不断增长,最大达到110GB。之后,我们将其截短,然后用户继续进行第二天。

所以问题是: 是否可以在Populatestatus返回1的时间内偶尔截断LOG文件,以便我们将LOG文件的大小保持在可管理的水平?

1 个答案:

答案 0 :(得分:1)

这样做非常好,但是这可能不会释放用于重建索引的日志。换句话说,在填充索引之前,截断日志可能不会减小日志的大小。

删除如此大量的数据并重建它们将始终消耗IO和日志资源。如果您尝试避免删除/重新填充群集表,这将大大减少日志的增长。在这种情况下,您也不需要重新创建全文本索引。