小编Dan*_*ski的帖子

为什么全文索引落后了?

我在表上设置了全文索引;该表处于相当恒定的负载下,每天接收约 50k 插入和约 35k 删除,插入之间的间隔相当短(最多 5 分钟)。
该索引配置为自动更改跟踪,通常能够在插入后几秒钟内处理所有文档。但昨天监测提示,该指数已超过4小时未更新。
收到该警报后,我检查了以下内容:

  • 全文日志中没有出现新条目。最后一个条目是信息性的 - 全文自动填充已完成。
  • 索引填充状态(由 sys.dm_fts_index_population 报告)停留在“已停止处理”状态。
  • 运行命令“FT BATCH CMPLETE”的单个会话耗尽了整个 CPU 核心。该会话的last_request_start_time 距全文日志中最后一个条目的秒数以内。除此之外,CPU 处于空闲状态。
  • 两个(共 30 个)片段的状态为 6 / 正在用于合并输入并准备好查询(如 sys.fulltext_index_fragments 所报告);这些碎片的大小每个接近 60GB。

大约 10 小时后,索引编制又神秘地恢复了,就像它停止了一样。

我认为索引因合并而暂停的想法正确吗?如果不是,我还可以检查什么以获得更好的诊断?

该问题大约每月在不同服务器上发生两次。据我所知,该索引没有按计划重组或重建。我正在寻找一种解决方案,可以让我完全避免索引暂停,或者在维护停机期间安排索引暂停。服务器是 SQL Server 2012 Enterprise。

index sql-server full-text-search sql-server-2012

5
推荐指数
1
解决办法
3002
查看次数