我正在对具有大量行的表重建全文索引。重建似乎使用了 FT GATHERER 线程的所有资源,导致实例上的所有其他全文索引报告大延迟。有没有办法限制重建使用的资源,以便其他索引可以跟上?
使用 swasheck 的评论作为潜在的答案,您可以定义一个作业,以便在 CPU 空闲时运行全文重建。
我还包括了每次填充目录时 SQL Server 维护的爬网日志的位置。
空闲CPU

定义何时发生 CPU 空闲情况是在 SQL Server 代理的属性中完成的。
http://msdn.microsoft.com/en-us/library/ms189065(v=sql.105).aspx

使用 perfmon 识别不活动的时间范围
另一种选择是使用 Perfmon 的数据收集器。您可以使用 SQL Server 常规统计登录计数器来确定服务器不太活跃的时间范围。然后,您可以定义全文重建以在该时间范围内运行。

我没有注意到任何特定的方法来限制人口或使用 MAXDOP 重建到一个 cpu,就像重建索引一样。
ALTER FULLTEXT INDEX ON database_name.schema_name.table_name START FULL POPULATION; http://msdn.microsoft.com/en-us/library/ms188359.aspx
更改全文目录目录名重建; http://msdn.microsoft.com/en-us/library/ms176095.aspx
检查FT日志
有一些日志可以监视全文目录的数量。这些可用于识别问题区域,并让您了解每个目录的填充时间。
%ProgramFiles%\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG
2012-07-13 04:00:04.62 spid105s 信息:为表或索引视图“[database_name].[schema_name].[table_name]”初始化的全文完整填充(表或索引视图 ID '66099276',数据库 ID ' 13')。人口子任务:4。
2012-07-13 04:04:14.59 spid131s 信息:全文已完成表或索引视图 '[database_name].[schema_name].[table_name]' 的完整填充(表或索引视图 ID '1621580815',数据库 ID ' 13')。已处理的文档数量:101。失败的文档数量:0。将重试的文档数量:0。