建议sql server全文索引更改跟踪和填充

fre*_*gas 12 full-text-search sql-server-2005

我有两张表有数百万条记录.
我希望全文搜索它们上的几列(基本上是名字和姓氏.)然而,这两个表基本上都被擦除并在周末被遗留的DTS包替换.
我将跟踪设置更改为自动,当说DTS运行时,表被锁定并且所有查询都失败了.

所以,我想以正确的方式做到这一点.我应该使用哪些设置或日程安排进行FTS更改跟踪和人口?我应该将更改跟踪设置为关闭,然后在DTS导入运行后安排完整填充吗?

另外,"变更跟踪"和"人口"之间的区别是什么?它们有什么关系?
如果没有变更跟踪,索引如何工作?
即使更改跟踪已关闭,完整填充是否会添加索引?

aks*_*aks 28

当表格在周末被擦除时,有多种方法可以接近索引填充.一种选择是在擦除之前删除表上的全文索引,并在替换旧版DTS包之后重新创建索引.另一个选项是更改索引以将CHANGE TRACKING设置为MANUAL.在擦除并重新填充表之后,可以通过调用ALTER FULLTEXT INDEX ... START UPDATE POPULATION来触发ft索引填充.我更喜欢后者(如果此表看到很多更新,请不要忘记将更改跟踪重置为AUTO).

CHANGE_TRACKING和人口之间的差异 -

CHANGE_TRACKING指定何时以及是否对表进行的更改传播到全文索引.它可以设置为AUTO,MANUAL或OFF.

只有当CHANGE_TRACKING设置为MANUAL或OFF时,POPULATION才有用.

设置为MANUAL时,用户必须触发update population命令,以便全文可以索引跟踪的更改,即它们不会自动编入索引.

OFF设置指定SQL Server不跟踪已更改的数据,而是在命令调用期间仅对表进行一次索引.当CHANGE_TRACKING设置为OFF时指定NO POPULATION时,将保留未填充的全文索引,直到用户使用START FULLTEXT POPULATION或START INCREMENTAL POPULATION子句调用ALTER FULLTEXT INDEX.

CREATE FULLTEXT INDEX MSDN文章涵盖了所有的这些选项更深入.