ALTER FULLTEXT CATALOG (Transact-SQL)

platí pro: SQL Server Azure SQL DatabaseAzure SQL Managed Instance

Pomocí tohoto příkazu můžete změnit vlastnosti fulltextového katalogu.

Transact-SQL konvence syntaxe

Syntaxe

ALTER FULLTEXT CATALOG catalog_name
{ REBUILD [ WITH ACCENT_SENSITIVITY = { ON | OFF } ]
| REORGANIZE
| AS DEFAULT
}

Arguments

catalog_name

Určuje název katalogu, který chcete upravit. Pokud katalog se zadaným názvem neexistuje, SQL Server vrátí chybu a neprovede operaci ALTER.

REBUILD

SQL Server Database Engine znovu sestaví celý katalog. Když znovu sestavíte katalog, stávající katalog se odstraní a na jeho místě se vytvoří nový katalog. Všechny tabulky, které obsahují odkazy na indexování v plném textu, jsou spojeny s novým katalogem. Přestavba resetuje metadata plného textu v tabulkách databázového systému.

WITH ACCENT_SENSITIVITY = { ON | VYPNUTO }

Specifikuje, zda je katalog, který má být upraven, citlivý na přízvuk nebo necitlivý na přízvuk pro indexování a dotazování plného textu.

Chcete-li určit aktuální nastavení vlastnosti zvýraznění citlivosti v fulltextovém katalogu, použijte FULLTEXTCATALOGPROPERTY funkci s AccentSensitivity hodnotou vlastnosti proti catalog_name.

  • Pokud funkce vrátí 1, je v katalogu fulltextu zvýraznění.
  • Pokud funkce vrátí 0, katalog nerozlišuje zvýraznění.

Výchozí citlivost přízvuku v katalogu i databázi je stejná.

REORGANIZOVAT

SQL Server Database Engine provede sloučení master, což zahrnuje sloučení menších indexů vytvořených v procesu indexování do jednoho velkého indexu. Sloučení fragmentů indexu plného textu může zlepšit výkon a uvolnit diskové a paměťové zdroje. Pokud dochází k častým změnám v katalogu plného textu, použijte tento příkaz pravidelně k reorganizaci katalogu s plným textem.

REORGANIZE optimalizuje také interní struktury indexu a katalogu.

V závislosti na množství indexovaných dat může dokončení hlavního sloučení nějakou dobu trvat. Sloučení velkého množství dat může vytvořit dlouho běžící transakci a zpozdit zkrácení transakčního protokolu během kontrolního bodu. V takovém případě může transakční záznam výrazně narůst v rámci modelu plné obnovy.

Jako nejlepší postup je zajistit, aby váš transakční log obsahoval dostatek místa pro dlouhodobě trvající transakci, než reorganizujete rozsáhlý fulltextový index v databázi využívající kompletní recovery model. Další informace naleznete v tématu Správa velikosti souboru transakčního protokolu.

JAKO VÝCHOZÍ STAV

Specifikuje, že tento katalog je výchozí. Při vytváření fulltextových indexů bez zadání katalogů se použije výchozí katalog. Pokud existuje výchozí fulltextový katalog, nastavení tohoto katalogu AS DEFAULT přepíše stávající výchozí hodnotu.

Povolení

K použití ALTER FULLTEXT CATALOGpotřebujete jedno z následujících oprávnění:

  • ALTER oprávnění k fulltextovém katalogu
  • Členství v db_owner nebo db_ddladmin pevných databázových rolích
  • Členství v pevné roli serveru správce systému

K použití ALTER FULLTEXT CATALOG ... AS DEFAULTpotřebujete ALTER oprávnění k fulltextovém katalogu a CREATE FULLTEXT CATALOG oprávnění k databázi.

Poznámky

Když spustíte operaci v fulltextovém katalogu, operace opětovného REBUILD sestavení se pozastaví, pokud má jiná relace otevřenou transakci, která je spuštěna INSERT, UPDATEnebo DELETE operace s tabulkami, které patří do daného katalogu. Operace opětovného sestavení se obnoví až poté, co se ostatní potvrzení transakce nebo vrátí zpět. Tuto situaci můžete monitorovat pomocí zobrazení dynamické správy (DMV) sys.dm_exec_requests a sys.dm_exec_sessions . Mezi uživatelskou relací a relacemi opětovného sestavení na pozadí se můžou zobrazit zámky s typem LCK_M_ISčekání .

Podobně během REORGANIZE operace se může v relaci, ve které je spuštěný příkaz, zobrazit FT_MASTER_MERGE typ čekání. Tento typ čekání může nastat, když ostatní relace mají dlouhotrvající transakce, které provádějí INSERT, UPDATEnebo DELETE operace s tabulkami ve stejném fulltextovém katalogu. V zobrazení sys.dm_exec_requestssys.dm_exec_sessions dynamické správy a zobrazení dynamické správy se může zobrazit jedna nebo více relací na pozadí s typem LCK_M_IX čekání a příkazem FT_MASTER_MERGE . Operace REORGANIZE se nedokončí, dokud se tyto zámky nevyvolají.

Následující dotaz vrátí blokované relace na pozadí.

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;

Examples

Následující příklad mění AccentSensitivity vlastnost výchozího katalogu ftCatalogs plným textem , který je citlivý na přízvuk.

  1. Změňte katalog na nerozlišující zvýraznění.

    USE AdventureWorks2025;
    GO
    
    ALTER FULLTEXT CATALOG ftCatalog
    REBUILD WITH ACCENT_SENSITIVITY = OFF;
    
  2. Zkontrolujte citlivost zvýraznění.

    SELECT FULLTEXTCATALOGPROPERTY('ftCatalog', 'AccentSensitivity');
    

    Dotaz vrátí 0hodnotu , což znamená, že katalog nerozlišuje zvýraznění.