Sql server 如何定义全文索引的重建是否已完成?
需要重新生成mssql全文索引。Sql server 如何定义全文索引的重建是否已完成?,sql-server,full-text-indexing,Sql Server,Full Text Indexing,需要重新生成mssql全文索引。 问题是——我需要确切地知道工作何时完成。因此,只要打电话: ALTER FULLTEXT CATALOG fooCatalog REBUILD WITH ACCENT_SENSITIVITY = OFF 不起作用或者我做错了点事。:/ 有什么想法吗?您可以通过如下查询来确定全文索引的状态: SELECT FULLTEXTCATALOGPROPERTY('IndexingCatalog', 'PopulateStatus') AS Status 填充状态:
问题是——我需要确切地知道工作何时完成。因此,只要打电话:
ALTER FULLTEXT CATALOG fooCatalog
REBUILD WITH ACCENT_SENSITIVITY = OFF
不起作用或者我做错了点事。:/
有什么想法吗?您可以通过如下查询来确定全文索引的状态:
SELECT FULLTEXTCATALOGPROPERTY('IndexingCatalog', 'PopulateStatus') AS Status
填充状态:0=空闲
1=正在进行的全部人口
2=暂停
3=节流
4=恢复
5=关闭
6=正在增加的人口
7=建筑指数
8=磁盘已满。暂停。
9=变更跟踪 但也要注意文章中的注意事项: 以下属性将在SQL的未来版本中删除 服务器:LogSize和PopulateStatus。避免在中使用这些属性 新的开发工作,并计划修改当前 使用它们中的任何一个
编辑:更正了指向更新页面的链接,并添加了注释中的引文,因为我还不能对马格纳斯的回答发表评论(缺乏声誉),我将在这里添加它。我发现MSDN上的信息存在冲突。根据我所引用的链接,PopulateStatus有以下10个可能的值:
所以-最好的选择是在(状态!=0)时调用它。。。现在还可以。还是比等待X秒并希望重建完成要好。是的,如果可以发起一些活动供您订阅,那就太好了,但据我所知,没有一个活动……此列表可能比仅上升到5的更正确。使用SQL2012,在重新填充全文索引表后,我立即看到状态为9。
0 = Idle.
1 = Full population in progress
2 = Paused
3 = Throttled
4 = Recovering
5 = Shutdown
6 = Incremental population in progress
7 = Building index
8 = Disk is full. Paused.
9 = Change tracking
SELECT name, case FULLTEXTCATALOGPROPERTY(name, 'PopulateStatus')
when 0 then 'Idle'
when 1 then ' Full population in progress'
when 2 then ' Paused'
when 3 then ' Throttled'
when 4 then ' Recovering'
when 5 then ' Shutdown'
when 6 then ' Incremental population in progress'
when 7 then ' Building index'
when 8 then ' Disk is full. Paused.'
when 9 then ' Change tracking' end AS Status
from sys.fulltext_catalogs