Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
Se aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Use esta instrucción para cambiar las propiedades de un catálogo de texto completo.
Transact-SQL convenciones de sintaxis
Sintaxis
ALTER FULLTEXT CATALOG catalog_name
{ REBUILD [ WITH ACCENT_SENSITIVITY = { ON | OFF } ]
| REORGANIZE
| AS DEFAULT
}
Argumentos
catalog_name
Especifica el nombre del catálogo que se va a modificar. Si no existe un catálogo con el nombre especificado, SQL Server devuelve un error y no realiza la operación ALTER.
REBUILD
El SQL Server Database Engine vuelve a generar todo el catálogo. Al recompilar un catálogo, se elimina el catálogo existente y se crea un nuevo catálogo en su lugar. Todas las tablas que tienen referencias de índices de texto completo se asocian al catálogo nuevo. La regeneración restablece los metadatos de texto completo de las tablas del sistema de la base de datos.
WITH ACCENT_SENSITIVITY = { ON | OFF }
Especifica si el catálogo que se va a modificar distingue o no los acentos para la indización y las consultas de texto completo.
Para determinar el valor actual de la propiedad de confidencialidad de énfasis de un catálogo de texto completo, use la FULLTEXTCATALOGPROPERTY función con el AccentSensitivity valor de propiedad en catalog_name.
- Si la función devuelve
1, el catálogo de texto completo distingue acentos. - Si la función devuelve
0, el catálogo no distingue acentos.
La distinción de acentos predeterminada para el catálogo y la base de datos es la misma.
REORGANIZE
El SQL Server Database Engine realiza una combinación master, lo que implica combinar los índices más pequeños creados en el proceso de indexación en un índice grande. La combinación de los fragmentos de índices de texto completo puede mejorar el rendimiento y liberar recursos de disco y memoria. Si se realizan cambios frecuentes en el catálogo de texto completo, utilice este comando de manera periódica para reorganizarlo.
REORGANIZE también optimiza las estructuras internas de índice y catálogo.
En función de la cantidad de datos indexados, una combinación maestra puede tardar algún tiempo en completarse. La combinación de una gran cantidad de datos puede crear una transacción de larga duración, lo que retrasa el truncamiento del registro de transacciones durante un punto de control. En este caso, el registro de transacciones podría crecer significativamente bajo el modelo de recuperación completa.
Como práctica recomendada, asegúrese de que su registro de transacciones contenga el espacio suficiente para una transacción de larga duración antes de reorganizar un índice de texto completo grande en una base de datos que use el modelo de recuperación completa. Para obtener más información, consulte Administración del tamaño del archivo de registro de transacciones.
POR DEFECTO
Especifica que este catálogo es el predeterminado. Al crear índices de texto completo sin especificar catálogos, se usa el catálogo predeterminado. Si hay un catálogo de texto completo predeterminado existente, al establecer este catálogo AS DEFAULT se invalida el valor predeterminado existente.
Permisos
Para usar ALTER FULLTEXT CATALOG, necesita uno de los permisos siguientes:
-
ALTERpermiso en el catálogo de texto completo - Pertenencia a los roles fijos de base de datos de db_owner o db_ddladmin
- Pertenencia al rol fijo de servidor sysadmin
Para usar ALTER FULLTEXT CATALOG ... AS DEFAULT, necesita ALTER permiso en el catálogo de texto completo y CREATE FULLTEXT CATALOG el permiso en la base de datos.
Observaciones
Cuando se ejecuta una REBUILD operación en un catálogo de texto completo, la operación de recompilación se pausa si otra sesión tiene una transacción abierta que ejecuta INSERToperaciones , UPDATEo DELETE en tablas que pertenecen a ese catálogo. La operación de recompilación se reanuda solo después de que otra transacción confirme o revierta. Puede supervisar esta situación mediante la sys.dm_exec_requests y sys.dm_exec_sessions vistas de administración dinámica (DMV). Es posible que vea bloqueos entre la sesión de usuario y las sesiones de recompilación en segundo plano, con un tipo de espera de LCK_M_IS.
Del mismo modo, durante una REORGANIZE operación, es posible que vea el FT_MASTER_MERGE tipo de espera en la sesión donde se ejecuta el comando. Este tipo de espera puede producirse cuando otras sesiones tienen transacciones de ejecución prolongada que realizan INSERToperaciones , UPDATEo DELETE en tablas del mismo catálogo de texto completo. En las sys.dm_exec_requests DMV y sys.dm_exec_sessions , es posible que vea una o varias sesiones en segundo plano con un LCK_M_IX tipo de espera y el FT_MASTER_MERGE comando . La REORGANIZE operación no se completa hasta que se liberan esos bloqueos.
La consulta siguiente devuelve sesiones en segundo plano bloqueadas.
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;
Ejemplos
En el ejemplo siguiente se cambia la propiedad AccentSensitivity del catálogo de texto completo predeterminado ftCatalog, que hace distinción de acentos.
Cambie el catálogo a énfasis que no distingue acentos.
USE AdventureWorks2025; GO ALTER FULLTEXT CATALOG ftCatalog REBUILD WITH ACCENT_SENSITIVITY = OFF;Compruebe la sensibilidad de énfasis.
SELECT FULLTEXTCATALOGPROPERTY('ftCatalog', 'AccentSensitivity');La consulta devuelve
0, lo que significa que el catálogo no distingue acentos.