Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Gebruik deze instructie om de eigenschappen van een catalogus met volledige tekst te wijzigen.
Transact-SQL syntaxisconventies
Syntaxis
ALTER FULLTEXT CATALOG catalog_name
{ REBUILD [ WITH ACCENT_SENSITIVITY = { ON | OFF } ]
| REORGANIZE
| AS DEFAULT
}
Arguments
catalog_name
Hiermee geeft u de naam van de catalogus die moet worden gewijzigd. Als er geen catalogus met de opgegeven naam bestaat, retourneert SQL Server een fout en wordt de bewerking ALTER niet uitgevoerd.
REBUILD
De SQL Server Database Engine bouwt de hele catalogus opnieuw op. Wanneer u een catalogus opnieuw bouwt, wordt de bestaande catalogus verwijderd en wordt er een nieuwe catalogus gemaakt. Alle tabellen met full-text indexeringsreferenties zijn gekoppeld aan de nieuwe catalogus. Het herbouwen reset de volledige tekstmetadata in de databasesysteemtabellen.
WITH ACCENT_SENSITIVITY = { ON | UIT }
Geeft aan of de catalogus die te wijzigen is voor accentgevoelig of accent-ongevoelig is voor full-text indexering en query.
Als u de huidige instelling van de eigenschap accentgevoeligheid van een catalogus met volledige tekst wilt bepalen, gebruikt u de FULLTEXTCATALOGPROPERTY functie met de AccentSensitivity eigenschapswaarde ten opzichte van catalog_name.
- Als de functie wordt geretourneerd
1, is de volledige tekstcatalogus accentgevoelig. - Als de functie retourneert
0, is de catalogus niet accentgevoelig.
De standaard accentgevoeligheid van catalogus en database is hetzelfde.
REORGANISEREN
De SQL Server Database Engine voert een master merge uit, waarbij de kleinere indexen die tijdens het indexeren zijn gemaakt, worden samengevoegd in één grote index. Het samenvoegen van de full-text indexfragmenten kan de prestaties verbeteren en schijf- en geheugenbronnen vrijmaken. Als er frequente wijzigingen zijn in de full-text catalogus, gebruik dit commando periodiek om de full-text catalogus te herstructureren.
REORGANIZE optimaliseert ook interne index- en catalogusstructuren.
Afhankelijk van de hoeveelheid geïndexeerde gegevens kan het enige tijd duren voordat een hoofdsamenvoeging is voltooid. Het samenvoegen van een grote hoeveelheid gegevens kan een langlopende transactie maken, waardoor het afkappen van het transactielogboek tijdens een controlepunt wordt vertraagd. In dit geval kan het transactielogboek aanzienlijk groeien onder het volledige herstelmodel.
Als best practice zorg je ervoor dat je transactielogboek voldoende ruimte bevat voor een langlopende transactie voordat je een grote full-text index reorganiseert in een database die het volledige herstelmodel gebruikt. Zie De grootte van het transactielogboekbestand beheren voor meer informatie.
STANDAARD
Specificeert dat deze catalogus de standaardcatalogus is. Wanneer u indexen voor volledige tekst maakt zonder catalogi op te geven, wordt de standaardcatalogus gebruikt. Als er een bestaande standaardcatalogus voor volledige tekst is, overschrijft deze catalogus AS DEFAULT de bestaande standaardwaarde.
Permissions
Als u wilt gebruiken ALTER FULLTEXT CATALOG, hebt u een van de volgende machtigingen nodig:
-
ALTERmachtiging voor de catalogus met volledige tekst - Lidmaatschap van de db_owner of db_ddladmin vaste databaserollen
- Lidmaatschap van de vaste serverfunctie sysadmin
Als u wilt gebruiken ALTER FULLTEXT CATALOG ... AS DEFAULT, hebt u machtigingen nodig ALTER voor de catalogus met volledige tekst en CREATE FULLTEXT CATALOG machtigingen voor de database.
Opmerkingen
Wanneer u een REBUILD bewerking uitvoert in een catalogus met volledige tekst, wordt de herbouwbewerking onderbroken als een andere sessie een geopende transactie heeft die wordt uitgevoerd INSERT, UPDATEof DELETE bewerkingen voor tabellen die deel uitmaken van die catalogus. De herbouwbewerking wordt pas hervat nadat die andere transactiedoorvoeringen zijn doorgevoerd of teruggedraaid. U kunt deze situatie bewaken met behulp van de sys.dm_exec_requests en sys.dm_exec_sessions dynamische beheerweergaven (DMV's). Mogelijk ziet u vergrendelingen tussen de gebruikerssessie en de sessies voor het opnieuw opbouwen van LCK_M_ISde achtergrond, met een wachttype.
Op dezelfde manier ziet u tijdens een REORGANIZE bewerking mogelijk het FT_MASTER_MERGE wachttype in de sessie waarin de opdracht wordt uitgevoerd. Dit wachttype kan optreden wanneer andere sessies langlopende transacties hebben die worden uitgevoerd INSERT, UPDATEof DELETE bewerkingen op tabellen in dezelfde catalogus met volledige tekst. In de sys.dm_exec_requests en sys.dm_exec_sessions DMV's ziet u mogelijk een of meer achtergrondsessies met een LCK_M_IX wachttype en de FT_MASTER_MERGE opdracht. De REORGANIZE bewerking wordt pas voltooid nadat deze vergrendelingen zijn vrijgegeven.
De volgende query retourneert geblokkeerde achtergrondsessies.
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;
Voorbeelden
Het volgende voorbeeld verandert de AccentSensitivity eigenschap van de standaard full-text catalogus ftCatalog, die gevoelig is voor accenten.
Wijzig de catalogus in accentgevoelig.
USE AdventureWorks2025; GO ALTER FULLTEXT CATALOG ftCatalog REBUILD WITH ACCENT_SENSITIVITY = OFF;Controleer de accentgevoeligheid.
SELECT FULLTEXTCATALOGPROPERTY('ftCatalog', 'AccentSensitivity');De query retourneert
0, wat betekent dat de catalogus niet accentgevoelig is.