在全文索引重新填充期间截断日志文件是否可以?

Is it ok to truncate a LOG file during Fulltext Index Repopulation?

一个简单的问题...

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

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

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

再次,这工作非常好,需要几个小时才能完成,这也非常好,因为这是在停机期间完成的,不会影响任何用户。但是有一件小事让我很恼火。当全文索引重新填充时,即:

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

returns 1、LOG文件不断增长,增长到110GB。之后我们只是截断它,用户在第二天继续。

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

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

如此庞大的数据删除再重建,总是会消耗IO和日志资源。如果您尝试避免 deletion/repopulation 的集群 table,这将显着减少日志增长。在这种情况下,您也不需要重新创建全文索引。