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 spravovat sledování změn. Popisuje také, jak nakonfigurovat zabezpečení a určit účinky na úložiště a výkon při použití sledování změn.
Správa sledování změn
Následující části obsahují seznam zobrazení, oprávnění a nastavení katalogu, která jsou relevantní pro správu sledování změn.
Zobrazení katalogu
Pokud chcete zjistit, které tabulky a databáze mají povolené sledování změn, použijte následující zobrazení katalogu:
Zobrazení katalogu sys.internal_tables také obsahuje interní tabulky, které se vytvoří při povolení sledování změn pro uživatelskou tabulku.
Zabezpečení
Pokud chcete získat přístup k informacím o sledování změn pomocí funkcí sledování změn, musí mít objekt zabezpečení následující oprávnění:
SELECToprávnění alespoň ke sloupcům primárního klíče v dotazované tabulce se sledováním změn.VIEW CHANGE TRACKINGoprávnění k tabulce, pro kterou se získávají změny. OprávněníVIEW CHANGE TRACKINGse vyžaduje z následujících důvodů:Záznamy sledování změn obsahují informace o odstraněných řádcích. Záznamy používají hodnoty primárního klíče odstraněných řádků. Objektu zabezpečení může být uděleno oprávnění
SELECTk tabulce se sledováním změn poté, co jsou odstraněna některá citlivá data. V takovém případě nechcete, aby měl tento objekt zabezpečení přístup k odstraněným informacím prostřednictvím sledování změn.Informace o sledování změn můžou ukládat informace o tom, které sloupce se mění operacemi aktualizace. Subjektu zabezpečení může být odepřen přístup ke sloupci, který obsahuje citlivé informace. Avšak protože jsou k dispozici informace o sledování změn, může uživatel určit, že byla hodnota sloupce aktualizována, ale nemůže zjistit hodnotu tohoto sloupce.
Pochopte režii sledování změn
Když pro tabulku povolíte sledování změn, ovlivní to některé operace správy. Následující tabulka uvádí operace a efekty, které byste měli zvážit.
| Operation | Když je povolené sledování změn |
|---|---|
DROP TABLE |
Odstraní se veškeré informace o sledování změn pro odstraněnou tabulku. |
ALTER TABLE DROP CONSTRAINT |
Pokus o vyřazení PRIMARY KEY omezení selže. Než budete moci odebrat omezení PRIMARY KEY, musíte zakázat sledování změn. |
ALTER TABLE DROP COLUMN |
Pokud je sloupec, který odstraňujete, součástí primárního klíče, není dovoleno tento sloupec odstranit bez ohledu na funkci sledování změn. Pokud sloupec, který odstraňujete, není součástí primárního klíče, odstranění sloupce proběhne úspěšně. Nejprve byste ale měli porozumět vlivu na libovolnou aplikaci, která tato data synchronizuje. Pokud je pro tabulku povolené sledování změn sloupců, může se vynechaný sloupec vrátit jako součást informací o sledování změn. Za zpracování vyřazeného sloupce zodpovídá aplikace. |
ALTER TABLE ADD COLUMN |
Pokud do sledované tabulky změn přidáte nový sloupec, přidání sloupce se nesleduje. Sledují se jenom aktualizace a změny provedené v novém sloupci. |
ALTER TABLE ALTER COLUMN |
Změny datového typu sloupce bez primárního klíče se nesledují. |
ALTER TABLE SWITCH |
Přepnutí oddílu selže, pokud je povolené sledování změn jedné nebo obou tabulek. |
DROP INDEX, or ALTER INDEX DISABLE |
Index, který vynucuje primární klíč, nelze vynechat ani zakázat. |
TRUNCATE TABLE |
Tabulku s povoleným sledováním změn můžete zkrátit. Řádky, které operace odstraní, se ale nesledují a aktualizuje se minimální platná verze. Když aplikace zkontroluje jeho verzi, kontrola značí, že verze je příliš stará a vyžaduje se opětovná inicializace. Tento stav je stejný, jako když je pro tabulku zakázáno sledování změn a poté znovu povoleno. |
Použití sledování změn přidává do operací DML určité režijní náklady, protože operace ukládá informace o sledování změn.
Efekty na DML
Sledování změn je optimalizované tak, aby minimalizovalo režii na výkon operací DML. Dodatečná režie výkonu spojená s používáním sledování změn u tabulky je podobná režii, se kterou se setkáte při vytváření a údržbě indexu tabulky.
Pro každý řádek, který operace DML změní, systém přidá řádek do interní tabulky sledování změn. Účinek této akce vzhledem k operaci DML závisí na různých faktorech, například:
Počet sloupců primárního klíče
Množství dat změněných v řádku tabulky uživatele
Počet operací provedených v transakci
Izolace snímků, pokud se používá, má vliv také na výkon všech operací DML, ať už je povolené sledování změn, nebo ne.
Účinky na úložiště
Data sledování změn se ukládají v následujících typech interních tabulek:
Interní tabulka změn
Každá tabulka uživatelů, která má povolené sledování změn, získá svou vlastní interní tabulku změn.
Interní tabulka transakcí
Databáze obsahuje jednu interní tabulku transakcí.
Tyto interní tabulky ovlivňují požadavky na úložiště následujícími způsoby:
Pro každou změnu na každý řádek v tabulce uživatelů přidá sledování změn řádek do interní tabulky změn. Tento řádek má malou pevnou režii a proměnnou režii, která se rovná velikosti sloupců primárního klíče. Řádek může obsahovat volitelné kontextové informace nastavené aplikací. Pokud povolíte sledování sloupců, každý změněný sloupec vyžaduje v tabulce sledování 4 bajty.
Pro každou potvrzenou transakci přidá sledování změn řádek do interní tabulky transakcí.
Stejně jako u jiných interních tabulek můžete určit prostor používaný pro tabulky sledování změn pomocí sp_spaceused uložené procedury. Názvy interních tabulek můžete získat pomocí zobrazení katalogu sys.internal_tables , jak je znázorněno v následujícím příkladu.
sp_spaceused 'sys.change_tracking_309576141'
sp_spaceused 'sys.syscommittab'
Související obsah
- Sledování změn dat (SQL Server)
- ALTER TABLE (Transact-SQL)
- Vlastnosti databáze (stránka ChangeTracking)
- ALTER DATABASE SET možnosti (Transact-SQL)
- Zobrazení katalogu sledování změn – sys.change_tracking_databases
- Zobrazení katalogu sledování změn – sys.change_tracking_tables
- O sledování změn (SQL Server)
- Práce se změnami dat