Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Applies to :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Utilisez cette instruction pour modifier les propriétés d’un catalogue de texte intégral.
conventions de syntaxe Transact-SQL
Syntaxe
ALTER FULLTEXT CATALOG catalog_name
{ REBUILD [ WITH ACCENT_SENSITIVITY = { ON | OFF } ]
| REORGANIZE
| AS DEFAULT
}
Arguments
CATALOG_NAME
Spécifie le nom du catalogue à modifier. Si un catalogue portant le nom spécifié n'existe pas, SQL Server retourne une erreur et n'effectue pas l'opération ALTER.
REBUILD
Le SQL Server Database Engine reconstruit l’intégralité du catalogue. Lorsque vous régénérez un catalogue, le catalogue existant est supprimé et un nouveau catalogue est créé à sa place. Toutes les tables qui comportent des références d'indexation de texte intégral sont associées au nouveau catalogue. La reconstruction redéfinit les métadonnées de texte intégral des tables système de la base de données.
WITH ACCENT_SENSITIVITY = { ON | OFF }
Indique si le catalogue à modifier respecte les accents ou non pour l'indexation et l'exécution de requêtes de texte intégral.
Pour déterminer le paramètre de propriété de sensibilité aux accents actuel d’un catalogue de texte intégral, utilisez la fonction avec la FULLTEXTCATALOGPROPERTYAccentSensitivity valeur de propriété par rapport à catalog_name.
- Si la fonction retourne
1, le catalogue de texte intégral respecte l’accentuation. - Si la fonction retourne
0, le catalogue n’est pas sensible aux accents.
Le catalogue et la base de données ont par défaut le même comportement quant au respect des accents.
REORGANIZE
Le SQL Server Database Engine effectue une fusion master merge, qui implique la fusion des index plus petits créés dans le processus d’indexation en un seul index volumineux. La fusion des fragments d’index de recherche en texte intégral peut améliorer les performances, et libérer des ressource de disque et des ressources mémoire. Si le catalogue de texte intégral fait l'objet de modifications fréquentes, utilisez cette commande régulièrement pour le réorganiser.
REORGANIZE optimise également les structures internes d’index et de catalogue.
Selon la quantité de données indexées, une fusion principale peut prendre un certain temps. La fusion d’une grande quantité de données peut créer une transaction de longue durée, en retardant la troncation du journal des transactions pendant un point de contrôle. Dans ce cas, la taille du journal des transactions peut s'accroître considérablement en mode de récupération complète.
Il est fortement recommandé de vous assurer que votre journal des transactions contient un espace suffisant pour une transaction dont l'exécution est longue avant de réorganiser un index de recherche en texte intégral de grande taille dans une base de données qui utilise le mode de récupération complète. Pour plus d’informations, consultez Gérer la taille du fichier journal des transactions.
PAR DÉFAUT
Spécifie que ce catalogue est le catalogue par défaut. Lorsque vous créez des index de recherche en texte intégral sans spécifier de catalogues, le catalogue par défaut est utilisé. S’il existe un catalogue de texte intégral par défaut existant, la définition de ce catalogue AS DEFAULT remplace la valeur par défaut existante.
Autorisations
Pour utiliser ALTER FULLTEXT CATALOG, vous avez besoin de l’une des autorisations suivantes :
-
ALTERautorisation sur le catalogue de texte intégral - Appartenance aux rôles de base de données fixes db_owner ou db_ddladmin
- Appartenance au rôle serveur fixe sysadmin
Pour utiliser ALTER FULLTEXT CATALOG ... AS DEFAULT, vous avez besoin ALTER d’autorisations sur le catalogue de texte intégral et CREATE FULLTEXT CATALOG d’autorisation sur la base de données.
Remarques
Lorsque vous exécutez une REBUILD opération sur un catalogue de texte intégral, l’opération de reconstruction s’interrompt si une autre session a une transaction ouverte en cours d’exécution INSERT, UPDATEou DELETE des opérations sur des tables appartenant à ce catalogue. L’opération de reconstruction reprend uniquement après que d’autres validations de transaction ou restaurations. Vous pouvez surveiller cette situation à l’aide de la sys.dm_exec_requests et sys.dm_exec_sessions vues de gestion dynamique (DMV). Vous pouvez voir des verrous entre la session utilisateur et les sessions de reconstruction en arrière-plan, avec un type d’attente de LCK_M_IS.
De même, pendant une REORGANIZE opération, vous pouvez voir le FT_MASTER_MERGE type d’attente dans la session où la commande est en cours d’exécution. Ce type d’attente peut se produire lorsque d’autres sessions ont des transactions longues qui effectuent INSERT, UPDATEou DELETE des opérations sur des tables dans le même catalogue de texte intégral. Dans les sys.dm_exec_requests vues dynamiques et sys.dm_exec_sessions les vues de gestion dynamique, vous pouvez voir une ou plusieurs sessions en arrière-plan avec un type d’attente LCK_M_IX et la FT_MASTER_MERGE commande. L’opération REORGANIZE ne se termine pas tant que ces verrous ne sont pas libérés.
La requête suivante retourne des sessions d’arrière-plan bloquées.
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;
Exemples
L'exemple suivant modifie la propriété AccentSensitivity du catalogue de texte intégral par défaut ftCatalog, qui respecte les accents.
Modifiez le catalogue en accentuant insensible.
USE AdventureWorks2025; GO ALTER FULLTEXT CATALOG ftCatalog REBUILD WITH ACCENT_SENSITIVITY = OFF;Vérifiez la sensibilité des accents.
SELECT FULLTEXTCATALOGPROPERTY('ftCatalog', 'AccentSensitivity');La requête retourne
0, ce qui signifie que le catalogue n’est pas sensible aux accents.