Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Verwenden Sie diese Anweisung, um die Eigenschaften eines Volltextkatalogs zu ändern.
Transact-SQL Syntaxkonventionen
Syntax
ALTER FULLTEXT CATALOG catalog_name
{ REBUILD [ WITH ACCENT_SENSITIVITY = { ON | OFF } ]
| REORGANIZE
| AS DEFAULT
}
Argumente
catalog_name
Gibt den Namen des zu ändernden Katalogs an. Wenn kein Katalog mit dem angegebenen Namen vorhanden ist, gibt SQL Server einen Fehler zurück und führt den Vorgang ALTER nicht aus.
REBUILD
Die SQL Server Database Engine erstellt den gesamten Katalog neu. Wenn Sie einen Katalog neu erstellen, wird der vorhandene Katalog gelöscht, und ein neuer Katalog wird an seiner Stelle erstellt. Alle Tabellen, in denen Referenzen für die Volltextindizierung vorhanden sind, werden dem neuen Katalog zugeordnet. Durch das erneute Erstellen werden die Volltextmetadaten in den Datenbanksystemtabellen zurückgesetzt.
WITH ACCENT_SENSITIVITY = { ON | OFF }
Gibt an, ob der zu ändernde Katalog für die Volltextindizierung und Abfrage nach Akzent unterscheidet.
Um die aktuelle Einstellung der Akzentempfindlichkeitseigenschaft eines Volltextkatalogs zu ermitteln, verwenden Sie die FULLTEXTCATALOGPROPERTY Funktion mit dem AccentSensitivity Eigenschaftswert für catalog_name.
- Wenn die Funktion zurückgegeben wird
1, ist der Volltextkatalog akzentfrei. - Wenn die Funktion zurückgegeben wird
0, ist der Katalog nicht akzentempfindlich.
Die Standardeinstellung für die Unterscheidung nach Akzent des Katalogs und der Datenbank stimmen überein.
REORGANIZE
Die SQL Server Database Engine führt einen master merge aus, der das Zusammenführen der kleineren Indizes umfasst, die beim Indizieren in einem großen Index erstellt wurden. Das Zusammenführen von Volltextindexfragmenten kann die Leistung verbessern und Datenträger- und Speicherressourcen freigeben. Bei häufigen Änderungen am Volltextkatalog sollten Sie diesen Befehl in regelmäßigen Abständen ausführen, um den Volltextkatalog neu zu organisieren.
REORGANIZE optimiert auch interne Index- und Katalogstrukturen.
Abhängig von der Menge der indizierten Daten kann es einige Zeit dauern, bis eine Masterzusammenführung abgeschlossen ist. Beim Zusammenführen einer großen Datenmenge kann eine lange ausgeführte Transaktion erstellt werden, verzögerungen beim Abschneiden des Transaktionsprotokolls während eines Prüfpunkts. In diesem Fall kann das Transaktionsprotokoll unter dem vollständigen Wiederherstellungsmodell erheblich anwachsen.
Sie sollten sicherstellen, dass das Transaktionsprotokoll vor dem Reorganisieren eines großen Volltextindexes in einer Datenbank, die das vollständige Wiederherstellungsmodell verwendet, genügend Speicherplatz für eine Transaktion mit langer Laufzeit enthält. Weitere Informationen finden Sie unter Verwalten der Größe der Transaktionsprotokolldatei.
STANDARDMÄSSIG
Gibt an, dass dieser Katalog der Standardkatalog ist. Wenn Sie Volltextindizes erstellen, ohne Kataloge anzugeben, wird der Standardkatalog verwendet. Wenn ein standardmäßiger Volltextkatalog vorhanden ist, setzt das Festlegen dieses Katalogs AS DEFAULT die vorhandene Standardeinstellung außer Kraft.
Berechtigungen
Für die Verwendung ALTER FULLTEXT CATALOGbenötigen Sie eine der folgenden Berechtigungen:
-
ALTERBerechtigung für den Volltextkatalog - Mitgliedschaft in den db_owner - oder db_ddladmin festen Datenbankrollen
- Mitgliedschaft in der festen Serverrolle "sysadmin "
Zur Verwendung ALTER FULLTEXT CATALOG ... AS DEFAULTbenötigen ALTER Sie die Berechtigung für den Volltextkatalog und CREATE FULLTEXT CATALOG die Berechtigung für die Datenbank.
Bemerkungen
Wenn Sie einen REBUILD Vorgang in einem Volltextkatalog ausführen, wird der Neuerstellungsvorgang angehalten, wenn eine andere Sitzung eine geöffnete Transaktion enthält, die ausgeführt INSERTwird, UPDATEoder DELETE Vorgänge für Tabellen, die zu diesem Katalog gehören. Der Neuerstellungsvorgang wird erst fortgesetzt, nachdem andere Transaktionen Commits ausgeführt oder zurückgesetzt wurden. Sie können diese Situation mithilfe der sys.dm_exec_requests - und sys.dm_exec_sessions dynamischen Verwaltungsansichten (DYNAMIC Management Views, DMVs) überwachen. Möglicherweise werden Sperren zwischen der Benutzersitzung und den Hintergrund-Neuerstellungssitzungen mit einem Wartetyp angezeigt LCK_M_IS.
Ebenso wird während eines REORGANIZE Vorgangs möglicherweise der FT_MASTER_MERGE Wartetyp in der Sitzung angezeigt, in der der Befehl ausgeführt wird. Dieser Wartetyp kann auftreten, wenn andere Sitzungen über lange ausgeführte Transaktionen verfügen, UPDATEdie Tabellen im gleichen Volltextkatalog ausführenINSERT, oder DELETE Vorgänge in Tabellen ausführen. In den sys.dm_exec_requests und sys.dm_exec_sessions DMVs werden möglicherweise mindestens eine Hintergrundsitzung mit einem LCK_M_IX Wartetyp und dem FT_MASTER_MERGE Befehl angezeigt. Der REORGANIZE Vorgang wird erst abgeschlossen, wenn diese Sperren freigegeben werden.
Die folgende Abfrage gibt blockierte Hintergrundsitzungen zurück.
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;
Beispiele
Im folgenden Beispiel wird die AccentSensitivity-Eigenschaft des Standard-Volltextkatalogs ftCatalog geändert, der nach Akzent unterscheidet.
Ändern Sie den Katalog in "Akzentunempfindlich".
USE AdventureWorks2025; GO ALTER FULLTEXT CATALOG ftCatalog REBUILD WITH ACCENT_SENSITIVITY = OFF;Überprüfen Sie die Akzentempfindlichkeit.
SELECT FULLTEXTCATALOGPROPERTY('ftCatalog', 'AccentSensitivity');Die Abfrage gibt zurück
0, was bedeutet, dass der Katalog keine Akzente berücksichtigt.