一个简单的问题...
作为数据库维护例程的一部分,我们有时会完全删除并重建全文索引及其基础的簇索引。
这很好用,除了一件事情,它没有问题: 重新创建聚簇索引后,我们执行一条语句重新创建全文索引:
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文件的大小保持在可管理的水平?
答案 0 :(得分:1)
这样做非常好,但是这可能不会释放用于重建索引的日志。换句话说,在填充索引之前,截断日志可能不会减小日志的大小。
删除如此大量的数据并重建它们将始终消耗IO和日志资源。如果您尝试避免删除/重新填充群集表,这将大大减少日志的增长。在这种情况下,您也不需要重新创建全文本索引。