发布时间:2010-09-27 11:42 来源:未知
应该如何维护SQL全文索引呢?接下来的SQL server内容就为您介绍维护SQL全文索引的方式,供您参考,假如您对此有兴趣的话,不妨一看。
维护SQL全文索引有三种方式:
完全重建
重新扫描所有行。彻底重建全文索引。既可以立即执行完全重建,也可以通过 SQL Server 代理按调度进行。
基于时间戳的增量重建
重新扫描那些从上一次完全重建或增量重建以来曾更改过的行。这样做需要在表上有一 timestamp 列。不更新时间戳的更改(如 WRITETEXT 和 UPDATETEXT)是检测不到的。可以立即执行增量重建,也可以按调度进行。
更改跟踪
维护一份对索引数据的全部更改的列表。用 WRITETEXT 和 UPDATETEXT 进行的更改是检测不到的。可以用这些更改立即更新SQL全文索引,也可以按调度进行,或者使用后台更新索引选项在更改一发生时便更新。
所使用的方法取决于许多因素,如 CPU 和可用的内存、数据更改的数量和速度、可用磁盘空间的大小,以及当前SQL全文索引的重要性等。以下建议可作为选择维护方式时的参考。
当 CPU 和内存不成问题,最新索引的值很高,且即时传播可以跟得上更改的速度时,使用带后台更新索引选项的更改跟踪。
当 CPU 和内存可以在调度时间使用,用于存储更改的磁盘空间足够大,且调度时间之间的变化并没有大到使传播所需的时间比完全重建更长时,使用带调度传播的更改跟踪。
假如大部分记录的更改或添加是立即发生的,应该使用完全重建。假如大部分记录是在扩展的时间段更改的,考虑使用带调度或后台更新索引的更改跟踪。
假如每一次更改的文档数目很多(并不是所占的百分比很高),可以使用增量重建。假如大量记录的更改是在扩展时间段发生的,考虑使用带调度或后台更新索引的更改跟踪。