Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Tento článek popisuje, jak povolit a zakázat sledování změn pro databázi a tabulku.
Povolení sledování změn pro databázi
Než budete moct použít sledování změn, musíte povolit sledování změn na úrovni databáze. Následující příklad ukazuje, jak povolit sledování změn pomocí možností ALTER DATABASE SET.
ALTER DATABASE AdventureWorks2022
SET CHANGE_TRACKING = ON
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON)
Sledování změn můžete povolit také v aplikaci SQL Server Management Studio pomocí dialogového okna vlastností databáze (stránka sledování změn). Pokud databáze obsahuje tabulky optimalizované pro paměť, nemůžete povolit sledování změn pomocí aplikace SQL Server Management Studio. K povolení použijte T-SQL.
Když povolíte sledování změn, můžete určit CHANGE_RETENTION možnosti a AUTO_CLEANUP hodnoty můžete kdykoli změnit po povolení sledování změn.
Hodnota uchovávání změn určuje časové období, pro které se uchovávají informace o sledování změn. Informace o sledování změn, které jsou starší než toto časové období, se pravidelně odeberou. Při nastavování této hodnoty byste měli zvážit, jak často se aplikace budou synchronizovat s tabulkami v databázi. Zadaná doba uchovávání musí být alespoň tak dlouhá jako maximální doba mezi synchronizacemi. Pokud aplikace získá změny v delších intervalech, vrácené výsledky můžou být nesprávné, protože některé informace o změnách byly pravděpodobně odebrány. Aby se zabránilo získání nesprávných výsledků, může aplikace použít systémovou funkci CHANGE_TRACKING_MIN_VALID_VERSION k určení, jestli byl interval mezi synchronizacemi příliš dlouhý.
Pomocí této možnosti můžete AUTO_CLEANUP povolit nebo zakázat úlohu čištění, která odebere staré informace o sledování změn. To může být užitečné, pokud dojde k dočasnému problému, který brání aplikacím v synchronizaci, a proces odebrání informací o sledování změn starších než doba uchovávání se musí pozastavit, dokud se problém nevyřeší.
U každé databáze, která používá sledování změn, mějte na paměti následující skutečnosti:
Pokud chcete použít sledování změn, musí být úroveň kompatibility databáze nastavená na 90 nebo vyšší. Pokud má databáze úroveň kompatibility menší než 90, můžete nakonfigurovat sledování změn. Funkce CHANGETABLE, která se používá k získání informací o sledování změn, však vrátí chybu.
Izolace snímků je nejjednodušší způsob, jak zajistit, aby všechny informace o sledování změn byly konzistentní. Z tohoto důvodu důrazně doporučujeme nastavit
ONizolaci snímků pro databázi. Další informace naleznete v tématu Práce se sledováním změn (SQL Server).
Povolení sledování změn pro tabulku
Sledování změn musí být povolené pro každou tabulku, kterou chcete sledovat. Pokud je sledování změn povolené, informace o sledování změn se zachovají pro všechny řádky v tabulce, které jsou ovlivněny operací DML.
Následující příklad ukazuje, jak povolit sledování změn pro tabulku pomocí ALTER TABLE.
ALTER TABLE Person.Contact
ENABLE CHANGE_TRACKING
WITH (TRACK_COLUMNS_UPDATED = ON)
Sledování změn pro tabulku v aplikaci SQL Server Management Studio můžete povolit také pomocí dialogového okna Vlastnosti databáze (stránka ChangeTracking).
Pokud je tato TRACK_COLUMNS_UPDATED možnost nastavena na ON, databázový stroj SQL Serveru ukládá další informace o tom, které sloupce byly aktualizovány na interní tabulku sledování změn. Sledování sloupců umožňuje aplikaci synchronizovat pouze sloupce, které byly aktualizovány. To může zlepšit efektivitu a výkon. Vzhledem k tomu, že údržba informací o sledování sloupců přidává další režijní náklady na úložiště, je tato možnost ve výchozím nastavení nastavená OFF na hodnotu.
Zakázání sledování změn pro tabulku nebo databázi
Sledování změn musí být nejprve zakázáno pro všechny tabulky sledované změnami, aby bylo možné pro databázi nastavit OFF sledování změn. K určení tabulek s povoleným sledováním změn pro databázi použijte zobrazení katalogu sys.change_tracking_tables.
Následující příklad ukazuje, jak zakázat sledování změn pro tabulku pomocí ALTER TABLE.
ALTER TABLE Person.Contact
DISABLE CHANGE_TRACKING;
Pokud žádné tabulky v databázi nesleduje změny, můžete pro databázi zakázat sledování změn. Následující příklad ukazuje, jak zakázat sledování změn pro databázi pomocí možností ALTER DATABASE SET.
ALTER DATABASE AdventureWorks2022
SET CHANGE_TRACKING = OFF
Související obsah
- Vlastnosti databáze (Stránka ChangeTracking)
- ALTER DATABASE SET Options (Transact-SQL)
- Zobrazení katalogu sledování změn – sys.change_tracking_databases
- Zobrazení katalogu sledování změn – sys.change_tracking_tables
- Sledování změn dat (SQL Server)
- o řešení Change Tracking (SQL Server)
- Práce se změnovými daty
- Řízení funkce Change Tracking (SQL Server)