2016-02-13 92 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秒鐘內在另一臺服務器上運行。你能建議我怎樣才能達到根本原因或什​​麼可能會妨礙這項工作? –