Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Используйте эту инструкцию для изменения свойств полнотекстового каталога.
Transact-SQL соглашения о синтаксисе
Синтаксис
ALTER FULLTEXT CATALOG catalog_name
{ REBUILD [ WITH ACCENT_SENSITIVITY = { ON | OFF } ]
| REORGANIZE
| AS DEFAULT
}
Аргументы
catalog_name
Указывает имя каталога для изменения. Если каталог с указанным именем не существует, SQL Server возвращает ошибку и не выполняет операцию ALTER.
REBUILD
SQL Server Database Engine перестраивает весь каталог. При перестроении каталога существующий каталог удаляется, а новый каталог создается на его месте. Все таблицы, содержащие ссылки полнотекстового индексирования, сопоставляются с новым каталогом. Перестроение сбрасывает полнотекстовые метаданные в системных таблицах базы данных.
WITH ACCENT_SENSITIVITY = { ON | OFF }
Указывает, будет ли изменяемый каталог учитывать диакритические знаки при полнотекстовом индексировании и выполнении запросов.
Чтобы определить текущий параметр свойства конфиденциальности акцентов в полнотекстовом каталоге, используйте FULLTEXTCATALOGPROPERTY функцию со AccentSensitivity значением свойства для catalog_name.
- Если функция возвращается
1, полнотекстовый каталог учитывает акцент. - Если функция возвращается
0, каталог не учитывает акцент.
По умолчанию учет диакритических знаков у каталога и у базы данных одинаков.
REORGANIZE
SQL Server Database Engine выполняет слияние master, включающее объединение меньших индексов, созданных в процессе индексирования в один большой индекс. Слияние фрагментов полнотекстового индекса может повысить производительность и освободить ресурсы дисков и памяти. Если в полнотекстовом каталоге происходят частые изменения, следует периодически использовать эту команду для реорганизации каталога.
REORGANIZE также оптимизирует внутренние структуры индекса и каталога.
В зависимости от объема индексированных данных для завершения главного слияния может потребоваться некоторое время. Объединение большого объема данных может создать длинную транзакцию, отложив усечение журнала транзакций во время контрольной точки. В этом случае размер журнала транзакций в модели полного восстановления может значительно увеличиться.
Перед реорганизацией большого полнотекстового индекса в базе данных, использующей модель полного восстановления, убедитесь, что в журнале транзакций достаточно свободного места для транзакций с большим временем выполнения. Дополнительные сведения см. в разделе "Управление размером файла журнала транзакций".
ПО УМОЛЧАНИЮ
Указывает, что этот каталог является каталогом по умолчанию. При создании полнотекстовых индексов без указания каталогов используется каталог по умолчанию. Если есть существующий полнотекстовый каталог по умолчанию, установка этого каталога AS DEFAULT переопределяет существующее значение по умолчанию.
Разрешения
Чтобы использовать ALTER FULLTEXT CATALOG, вам потребуется одно из следующих разрешений:
-
ALTERразрешение на полнотекстовый каталог - Членство в предопределенных ролях базы данных db_owner или db_ddladmin
- Членство в предопределенных ролях сервера sysadmin
Чтобы использовать ALTER FULLTEXT CATALOG ... AS DEFAULT, требуется ALTER разрешение на полнотекстовый каталог и CREATE FULLTEXT CATALOG разрешение на базу данных.
Замечания
При выполнении REBUILD операции в полнотекстовом каталоге операция перестроения приостанавливается, если другой сеанс имеет открытую транзакцию, которая выполняется INSERT, UPDATEили DELETE операции с таблицами, принадлежащими к такому каталогу. Операция перестроения возобновляется только после фиксации или отката другой транзакции. Эту ситуацию можно отслеживать с помощью sys.dm_exec_requests и sys.dm_exec_sessions динамических административных представлений (динамических административных представлений). Между сеансом пользователя и фоновым перестроениями могут отображаться блокировки с типом LCK_M_ISожидания.
Аналогичным образом во время REORGANIZE операции может появиться FT_MASTER_MERGE тип ожидания в сеансе, где выполняется команда. Этот тип ожидания может возникать, если другие сеансы имеют длительные транзакции, выполняющиеся INSERTUPDATEили DELETE операции с таблицами в том же полнотекстовом каталоге. В динамических sys.dm_exec_requestssys.dm_exec_sessions представлениях можно увидеть один или несколько фоновых сеансов с типом LCK_M_IX ожидания и командой FT_MASTER_MERGE . Операция REORGANIZE не завершается до тех пор, пока эти блокировки не будут освобождены.
Следующий запрос возвращает заблокированные фоновые сеансы.
SELECT r1.session_id,
r1.blocking_session_id,
r1.wait_type,
r1.wait_resource,
r1.last_wait_type,
r1.command AS BlockedSessionCommand,
r2.command AS BlockingSessionCommand,
s1.login_name AS BlockedSessionLogin,
s2.login_name AS BlockingSessionLogin,
s1.host_name AS BlockedSessionHost,
s2.host_name AS BlockingSessionHost,
r1.status AS BlockedSessionStatus,
r2.status AS BlockingSessionStatus
FROM sys.dm_exec_requests AS r1
INNER JOIN sys.dm_exec_sessions AS s1
ON r1.session_id = s1.session_id
INNER JOIN sys.dm_exec_sessions AS s2
ON r1.blocking_session_id = s2.session_id
LEFT OUTER JOIN sys.dm_exec_requests AS r2
ON s2.session_id = r2.session_id
WHERE r1.blocking_session_id <> 0
AND r1.status = 'background'
ORDER BY r1.wait_time DESC;
Примеры
Следующий пример изменяет свойство AccentSensitivity полнотекстового каталога по умолчанию ftCatalog, который учитывает диакритические знаки.
Измените каталог на нечувствительный элемент.
USE AdventureWorks2025; GO ALTER FULLTEXT CATALOG ftCatalog REBUILD WITH ACCENT_SENSITIVITY = OFF;Проверьте конфиденциальность акцента.
SELECT FULLTEXTCATALOGPROPERTY('ftCatalog', 'AccentSensitivity');Запрос возвращается
0, что означает, что каталог не учитывает акцент.