2016-02-13 95 views
2

我有一个两步作业定期运行在SQL Server 2012全文目录重建vs全文索引开始全文populaton

  1. ALTER FULLTEXT CATALOG [CatalogName] REBUILD
  2. ALTER FULLTEXT INDEX ON [tblname] START FULL POPULATION

我没有第二个步骤的目的,因为谷歌表示,在第一步骤本身的SQL Server重新创建目录和索引的生成。

如果有人能够帮助我理解执行上述两个步骤期间发生的内部情况,我将不胜感激。

回答

1
ALTER FULLTEXT CATALOG [CatalogName] REBUILD 

删除目录并创建新的。如果此目录有许多索引,则重建可能需要很长时间。

ALTER FULLTEXT INDEX ON [tblname] START FULL POPULATION 

只重建其中一个表上的索引。

如果一个目录中的索引很少,那么两个步骤都是相同的。但是,如果Catalog的大小更大并且包含许多索引,则第一步需要更多时间来运行。

+0

我们有一对一的映射。一个目录包含一个对应于一个表的索引。我认为在这种情况下,我可以删除两个步骤中的任何一个。我们有一个在另一个(我目前有208386行左右)的性能优势? –

+0

在这种情况下,这两个步骤是相同的​​。 – gofr1

+0

最初我认为这两个步骤需要大量的运行时间和事务日志空间。我删除了第2步,然后尝试再次运行该作业。它花费了超过90 GB的事务日志空间,并且仍然只运行2万行。同样的作业在10秒钟内在另一台服务器上运行。你能建议我怎样才能达到根本原因或什​​么可能会妨碍这项工作? –