2011-12-20 59 views
12

我有兩個擁有數百萬條記錄的表。
我要全文搜索一對夫婦對他們的列(基本上姓和名)。但是,這兩個表基本上得到消滅,並通過傳統的DTS包上週末所取代。
我把變更跟蹤設置爲自動,當上述DTS運行時,表被鎖定,所有查詢都失敗。對sql server全文索引的建議更改跟蹤和人口的建議

所以,我想這樣做的正確方法。我應該使用什麼設置或時間表來進行FTS變更跟蹤和人口統計?我應該將更改跟蹤設置爲關閉,然後在DTS導入運行後安排全部人口?

而且,正是他們在相關的「更改跟蹤」和「人口」,以及如何區別?
如果沒有變更跟蹤,指數如何工作?
即使變更追蹤已關閉,全部人口是否添加了索引?

回答

26

有多種方式接近指數人口當表得到擦拭過週末。一種選擇是在清除表格之前刪除全文索引,並在傳統DTS包更換後重新創建索引。另一種選擇是更改索引以將CHANGE TRACKING設置爲MANUAL。表格被擦除並重新填充之後,可以通過調用ALTER FULLTEXT INDEX ... START UPDATE POPULATION來啓動ft索引填充。我更喜歡後者(如果此表看到很多更新,請不要忘記將更改跟蹤重置爲AUTO)。 CHANGE_TRACKING和人口之間

差異 -

CHANGE_TRACKING指定時,如果表中所做的更改傳播到全文索引。它可以設置爲AUTO,MANUAL或OFF。

POPULATION只有當CHANGE_TRACKING設置爲MANUAL或OFF時才重要。

當設置爲手動,用戶必須觸發更新人口命令,使全文索引可以跟蹤的變化,即它們不會自動索引。

OFF設置指定SQL Server不跟蹤更改的數據,而只是在命令調用期間將表索引爲。如果在將CHANGE_TRACKING設置爲OFF的情況下指定NO POPULATION,則全文索引將保留爲未填充狀態,直到用戶使用START FULLTEXT POPULATION或START INCREMENTAL POPULATION子句調用ALTER FULLTEXT INDEX。

CREATE FULLTEXT INDEX MSDN文章涵蓋所有這些選項更深入。

+0

好吧。你必須去讓我登錄+1。 @fregas - 確保你爲他的好答覆提高'aks'。另外,如果沒有其他人,這是最好的答案。我發現它非常有用。 – 2012-09-07 14:07:25

+0

+1。比MSDN文章更好... – Shubhojit 2014-06-16 08:59:02