sys.dm_fts_active_catalogs (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

返回在服务器上正在进行某些填充活动的全文目录的相关信息。

注意

Microsoft SQL Server的未来版本中将删除以下列:is_paused、previous_status、previous_status_description、row_count_in_thousands、状态、status_description和worker_count。 应避免在新的开发工作中使用这些列,并着手修改当前使用上述任意列的应用程序。

列名称 数据类型 说明
database_id int 包含活动全文目录的数据库的 ID。
catalog_id int 活动的全文目录的 ID。
memory_address varbinary(8) 为与此全文目录相关的填充活动所分配的内存缓冲区的地址。
name nvarchar(128) 活动的全文目录的名称。
is_paused bit 指示活动全文目录的填充是否已暂停。
status int 全文目录的当前状态。 下列情况之一:

0 = 正在初始化

1 = 就绪

2 = 已暂停

3 = 暂时错误

4 = 需要重新装入

5 = 关闭

6 = 停止以备份

7 = 已完成目录备份

8 = 目录已损坏
status_description nvarchar(120) 对活动全文目录的当前状态的说明。
previous_status int 全文目录的前面状态。 下列情况之一:

0 = 正在初始化

1 = 就绪

2 = 已暂停

3 = 暂时错误

4 = 需要重新装入

5 = 关闭

6 = 停止以备份

7 = 已完成目录备份

8 = 目录已损坏
previous_status_description nvarchar(120) 对活动全文目录的前面状态的说明。
worker_count int 当前正在处理此全文目录的线程数。
active_fts_index_count int 所填充的全文索引数。
auto_population_count int 正在对此全文目录进行自动填充的表数。
manual_population_count int 正在对此全文目录进行手动填充的表数。
full_incremental_population_count int 正在对此全文目录进行完整或增量填充的表数。
row_count_in_thousands int 此全文目录中的所有全文索引的估计行数(千)。
is_importing bit 指示是否正在导入全文目录:

1 = 正在导入目录。

2 = 没有导入目录。

注解

is_importing栏于 2008 SQL Server (10.0.x) 引入。

权限

对于 SQL Server 和 SQL 托管实例,需要 VIEW SERVER STATE 权限。

在 SQL 数据库“基本”、“S0”和“S1”服务目标中,对于“弹性池”中的数据库,服务器管理员帐户、Azure Active Directory 管理员帐户或##MS_ServerStateReader##服务器角色中的成员身份是必需的。 对于所有其他 SQL 数据库服务目标,需要数据库的 VIEW DATABASE STATE 权限或 ##MS_ServerStateReader## 服务器角色中的成员身份。

SQL Server 2022 及更高版本的权限

需要对服务器具有 VIEW SERVER PERFORMANCE STATE 权限。

物理联接

sys.dm_fts_active_catalogs的物理联接示意图。

关系基数

功能 关系
dm_fts_active_catalogs.database_id dm_fts_index_population.database_id 一对一
dm_fts_active_catalogs.catalog_id dm_fts_index_population.catalog_id 一对一

示例

以下示例返回有关当前数据库的活动全文目录的信息。

SELECT catalog.name, catalog.is_importing, catalog.auto_population_count,  
  OBJECT_NAME(population.table_id) AS table_name,  
  population.population_type_description, population.is_clustered_index_scan,  
  population.status_description, population.completion_type_description,  
  population.queued_population_type_description, population.start_time,  
  population.range_count   
FROM sys.dm_fts_active_catalogs catalog   
CROSS JOIN sys.dm_fts_index_population population   
WHERE catalog.database_id = population.database_id   
AND catalog.catalog_id = population.catalog_id   
AND catalog.database_id = (SELECT dbid FROM sys.sysdatabases WHERE name = DB_NAME());  
GO  

后续步骤

全文搜索和语义搜索动态管理视图和函数 (Transact-SQL)