FULLTEXTCATALOGPROPERTY (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Возвращает сведения о свойствах полнотекстового каталога в SQL Server.
Соглашения о синтаксисе Transact-SQL
Синтаксис
FULLTEXTCATALOGPROPERTY ('catalog_name' ,'property')
Аргументы
Примечание.
В будущем выпуске SQL Server будут удалены следующие свойства: LogSize и ЗаполнениеStatus. Избегайте использовать эти свойства в новых разработках и запланируйте изменение приложений, где они используются в настоящий момент.
catalog_name
Выражение, содержащее имя полнотекстового каталога.
свойство
Выражение, содержащее имя свойства полнотекстового каталога. В таблице перечислены свойства и описания возвращаемых сведений.
Свойство | Description |
---|---|
AccentSensitivity | Настройка учета диакритических знаков: 0 = без учета диакритических знаков; 1 = с учетом диакритических знаков. |
IndexSize | Логический размер полнотекстового каталога в мегабайтах (МБ). Включает размер индексов семантических ключевых фраз и индексов подобия документов. Дополнительные сведения см. в подразделе «Примечания» далее в этом разделе. |
ItemCount | Число проиндексированных элементов, включая все полнотекстовые индексы, индексы ключевых фраз и индексы сходства документов, содержащихся в каталоге |
LogSize | Поддерживается только для обеспечения обратной совместимости. Всегда возвращает 0. Размер в байтах объединенного набора журналов ошибок, связанных с полнотекстовой каталогом службы Поиск (Майкрософт). |
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 пользователь может просматривать только метаданные защищаемых объектов. Пользователь владеет этими защищаемыми объектами или на них пользователю были предоставлены разрешения. Таким образом, встроенные функции, такие как FULLTEXTCATALOGPROPERTY, создающие метаданные, могут вернуть значение NULL, если пользователь не имеет разрешений на объект. Дополнительные сведения см. в статье sp_help_fulltext_catalogs (Transact-SQL).
Замечания
Функция FULLTEXTCATALOGPROPERTY ('catalog_name','IndexSize') анализирует только фрагменты с состоянием 4 или 6, указанным в представлении sys.fulltext_index_fragments. Данные фрагменты являются частью логического индекса. Таким образом, свойство IndexSize возвращает только логический размер индекса.
При слиянии индексов фактический размер индекса может в два раза превышать его логический размер. Чтобы определить фактический размер, который занимает полнотекстовый индекс при слиянии, используйте системную хранимую процедуру sp_spaceused. При выполнении этой процедуры анализируются все фрагменты, связанные с полнотекстовым индексом.
Заполнение полнотекстового индекса может завершиться ошибкой. Это может произойти, если ограничить рост файла полнотекстового каталога и не оставить достаточно места для процесса слияния. В этом случае инструкция FULLTEXTCATALOGPROPERTY ('имя_каталога','IndexSize') возвращает значение 0, а сообщение об ошибке записывается в журнал полнотекстовых операций.
Error: 30059, Severity: 16, State: 1. A fatal error occurred during a full-text population and caused the population to be cancelled. Population type is: FULL; database name is FTS_Test (id: 13); catalog name is t1_cat (id: 5); table name t1 (id: 2105058535). Fix the errors that are logged in the full-text crawl log. Then, resume the population. The basic Transact-SQL syntax for this is: ALTER FULLTEXT INDEX ON table_name RESUME POPULATION.
Важно, чтобы приложение не ожидало в непрерывном цикле, проверяя, пока свойство PopulateStatus не будет в состоянии бездействия. Переход в состояние бездействия означает, что заполнение завершено. Эта проверка отвлекает ресурсы ЦП от обработки базы данных и процессов полнотекстового поиска и приводит к превышениям времени ожидания. Обычно лучший параметр для проверки соответствующего свойства PopulateStatus на уровне таблицы — свойство TableFullTextPopulateStatus в системной функции OBJECTPROPERTYEX. Это и другие полнотекстовые свойства в функции OBJECTPROPERTYEX предоставляют более подробные сведения о таблицах с полнотекстовым индексированием. Дополнительные сведения см. в разделе OBJECTPROPERTYEX (Transact-SQL).
Примеры
Следующий пример возвращает количество полнотекстовых индексированных элементов в полнотекстовом каталоге Cat_Desc
.
USE AdventureWorks2022;
GO
SELECT fulltextcatalogproperty('Cat_Desc', 'ItemCount');
GO
См. также
FULLTEXTSERVICEPROPERTY (Transact-SQL)
Функции метаданных (Transact-SQL)
sp_help_fulltext_catalogs (Transact-SQL)