維護SQL全文索引的方式
應該如何維護SQL全文索引呢?下面就為您介紹維護SQL全文索引的方式,供您參考,如果您對此有興趣的話,不妨一看。
維護SQL全文索引有三種方式:
完全重建
重新掃描所有行。徹底重建全文索引。既可以立即執(zhí)行完全重建,也可以通過 SQL Server 代理按調度進行。
基于時間戳的增量重建
重新掃描那些從上一次完全重建或增量重建以來曾更改過的行。這樣做需要在表上有一 timestamp 列。不更新時間戳的更改(如 WRITETEXT 和 UPDATETEXT)是檢測不到的??梢粤⒓磮?zhí)行增量重建,也可以按調度進行。
更改跟蹤
維護一份對索引數(shù)據(jù)的全部更改的列表。用 WRITETEXT 和 UPDATETEXT 進行的更改是檢測不到的??梢杂眠@些更改立即更新SQL全文索引,也可以按調度進行,或者使用后臺更新索引選項在更改一發(fā)生時便更新。
所使用的方法取決于許多因素,如 CPU 和可用的內存、數(shù)據(jù)更改的數(shù)量和速度、可用磁盤空間的大小,以及當前SQL全文索引的重要性等。以下建議可作為選擇維護方式時的參考。
當 CPU 和內存不成問題,最新索引的值很高,且即時傳播可以跟得上更改的速度時,使用帶后臺更新索引選項的更改跟蹤。
當 CPU 和內存可以在調度時間使用,用于存儲更改的磁盤空間足夠大,且調度時間之間的變化并沒有大到使傳播所需的時間比完全重建更長時,使用帶調度傳播的更改跟蹤。
如果大部分記錄的更改或添加是立即發(fā)生的,應該使用完全重建。如果大部分記錄是在擴展的時間段更改的,考慮使用帶調度或后臺更新索引的更改跟蹤。
如果每一次更改的文檔數(shù)目很多(并不是所占的百分比很高),可以使用增量重建。如果大量記錄的更改是在擴展時間段發(fā)生的,考慮使用帶調度或后臺更新索引的更改跟蹤。
【編輯推薦】