FULLTEXTCATALOGPROPERTY (Transact-SQL)

返回有关全文目录属性的信息。

主题链接图标Transact-SQL 语法约定

语法

FULLTEXTCATALOGPROPERTY ('catalog_name' ,'property')

参数

注意注意

在 SQL Server 的未来版本中将删除以下属性:LogSizePopulateStatus。应避免在新的开发工作中使用这些属性,并着手修改当前使用上述任意属性的应用程序。

  • catalog_name
    包含全文目录名称的表达式。

  • property
    包含全文目录属性名称的表达式。下表列出了这些属性,并提供对返回的信息的说明。

    属性

    说明

    AccentSensitivity

    区分重音设置。

    0 = 不区分重音

    1 = 区分重音

    IndexSize

    全文目录的逻辑大小 (MB)。

    有关详细信息,请参阅本主题后面的“备注”。

    ItemCount

    全文目录中当前全文索引项的数目。

    LogSize

    仅为保持向后兼容性。总是返回 0。

    与 Microsoft Search 服务全文目录关联的错误日志组合集的大小,以字节为单位。

    MergeStatus

    是否正在进行主合并。

    0 = 未进行主合并

    1 = 正在进行主合并

    PopulateCompletionAge

    上一次全文索引填充的完成时间与 01/01/1990 00:00:00 之间的时间差(秒)。

    仅针对完全和增量爬网填充进行了更新。如果未发生填充,则返回 0。

    PopulateStatus

    0 = 空闲

    1 = 正在进行完全填充

    2 = 已暂停

    3 = 已中止

    4 = 正在恢复

    5 = 关闭

    6 = 正在进行增量填充

    7 = 正在生成索引

    8 = 磁盘已满。已暂停。

    9 = 更改跟踪

    UniqueKeyCount

    全文目录中的唯一键数。

    ImportStatus

    是否将导入全文目录。

    0 = 不将导入全文目录。

    1 = 将导入全文目录。

返回类型

int

异常

出现错误时或调用方没有查看对象的权限时,将返回 NULL。

在 SQL Server 2008 中,用户只能查看其拥有的安全对象的元数据,或者已对其授予权限的安全对象的元数据。也就是说,如果用户对该对象没有任何权限,则某些会产生元数据的内置函数(如 FULLTEXTCATALOGPROPERTY)可能返回 NULL。有关详细信息,请参阅 元数据可见性配置元数据可见性故障排除

注释

FULLTEXTCATALOGPROPERTY ('catalog_name' ,'IndexSize') 只查看状态为 4 或为 6 的片段,如 sys.fulltext_index_fragments 中所示。这些片段是逻辑索引的一部分。因此,IndexSize 属性仅返回逻辑索引大小。但是,在索引合并期间,实际的索引大小可能会两倍于其逻辑大小。若要找出合并期间将由全文索引使用的实际大小,请使用 sp_spaceused 系统存储过程。该过程查看与全文索引关联的所有片段。

不应使应用程序在死循环中等待,它会不断检查 PopulateStatus 属性是否变为空闲(表明填充已完成)。这一点很重要,因为这会使数据库和全文搜索进程得不到 CPU 周期,从而导致超时。此外,一般最好使用 OBJECTPROPERTYEX 系统函数检查对应的表级 PopulateStatus 属性,即 TableFullTextPopulateStatus。此属性以及 OBJECTPROPERTYEX 中的其他新的全文属性可以提供有关全文索引表的更详尽的信息。有关详细信息,请参阅 OBJECTPROPERTYEX (Transact-SQL)

示例

以下示例将返回名为 Cat_Desc 的全文目录中的全文索引项数目。

USE AdventureWorks2008R2;
GO
SELECT fulltextcatalogproperty('Cat_Desc', 'ItemCount');
GO