gpt4 book ai didi

sql - 全文索引不更新(SQL 2005)

转载 作者:行者123 更新时间:2023-12-04 01:56:54 24 4
gpt4 key购买 nike

直到上周,我有一个表在全文搜索方面做得很好。有超过七百万条记录,我在全文索引中看到它有超过七百万条条目。

但搜索结果中不会显示最近一周的内容。我可以在表的全文索引属性中看到“待定”条目的数量在增加(今天可能有 3 万个),可能对应于尚未添加到索引中的内容。

我首先检查的是索引是否启用。它不是,所以我启用了它,启动“ALTER FULLTEXT INDEX”作业的进程开始阻止服务器上的所有其他请求,所以我将其终止。

我已确认全文索引服务正在运行并自动启动。我还确认它会自动检查更改,尽管将其从“自动”变为“手动”再变为“关闭”似乎除了重置排队结果的数量之外并没有太大作用。 (将其转回“自动”会将数字重置为 30,000。)

我试图重建全文索引,但对于“完整”和“增量”,它会返回一条关于“已经有一个索引”的消息。 “更新”显示“命令已成功完成”,但似乎没有任何效果。

我今天做的最后一件事是:

  1. 禁用全文索引
  2. 重建FTI所基于的聚簇索引
  3. 重新启用 FTI

这启动了“ALTER FULLTEXT INDEX”作业,再次阻止了所有正在执行实际工作的进程。

我们正在尝试在选项 A:删除现有 FTI 并从头开始重建,以及选项 B:执行禁用/重建/重新启用技巧之间做出决定,这似乎开始了一些有用的事情。 (我们会先做 B,然后再做 A,但我们预计两者都会有一两个小时的停机时间,而 A 过去曾工作过。)

有没有更快的方法来做这些?知道我一开始是怎么遇到这种情况的吗?

最佳答案

这是一个有趣的问题。我认为你自己陷入其中是因为它被禁用了。我可能已经找到了一种方法让你摆脱它而不会阻止其他一切。

首先,要知道此行为是 SQL Server 2005 SP1 之前的错误,请确保您有 SP1。

如果您已经这样做了,请尝试:

ALTER FULLTEXT INDEX ON tablename SET CHANGE_TRACKING MANUAL

ALTER FULLTEXT INDEX ON tablename START UPDATE POPULATION

如果可行,那么我认为您遇到了与 this 相同的问题家伙。他只是设置了一个工作,每隔一小时左右运行一次。诚然,这是一个临时解决方案,但它会给您时间,直到您真正重建索引。

刚刚想到的其他事情,您是否尝试过重新组织索引?我知道它不会阻塞,但我不确定它是否会导致刷新以防止它也阻塞的方式发生。

关于sql - 全文索引不更新(SQL 2005),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/558491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com