Sdílet prostřednictvím


Výkon systémově verzovaných temporálních tabulek optimalizovaných z hlediska paměti

platí pro: SQL Server 2016 (13.x) a novější azure SQL Managed Instance

Tento článek popisuje některé konkrétní aspekty výkonu při použití dočasných tabulek optimalizovaných pro systémovou verzi paměti.

Když přidáte systémovou správu verzí do existující tabulky, která není dočasná, můžete očekávat dopad na operace aktualizace a odstranění, protože tabulka historie se aktualizuje automaticky.

Důležité informace o výkonu

Každá aktualizace a odstranění se zaznamená v interní tabulce historie optimalizované pro paměť. Pokud vaše úloha používá tyto dvě operace masivně, může docházet k neočekávané spotřebě paměti. Proto vám doporučujeme následující aspekty:

  • Neprovádějte masivní odstranění z aktuální tabulky v jednom kroku. Zvažte odstranění dat v několika dávkách, přičemž mezi nimi ručně vyvoláte vyprázdnění dat příkazem sp_xtp_flush_temporal_history, nebo během SYSTEM_VERSIONING = OFF.

  • Neprovádějte rozsáhlé aktualizace tabulek najednou, protože může vést k dvojnásobné spotřebě paměti potřebné k aktualizaci nečasově optimalizované tabulky. Tato dvojnásobná spotřeba paměti je dočasná, protože úloha ukládání dat pravidelně funguje, aby se spotřeba paměti interních přechodových tabulek udržela v rámci očekávaných mezí ve stálém stavu. Hranice je 10 % spotřeby paměti aktuální časové tabulky. Zvažte provádění rozsáhlých aktualizací v několika dávkách nebo během SYSTEM_VERSIONING = OFF, například když používáte aktualizace k nastavení výchozích hodnot pro nově přidané sloupce.

Doba aktivace úlohy vyprázdnění dat není konfigurovatelná, ale podle potřeby můžete provést sp_xtp_flush_temporal_history ručně.

Zvažte použití clusterovaného columnstore jako možnosti úložiště pro tabulku historie založené na disku, zejména pokud plánujete spouštět analytické dotazy na historická data, která využívají agregační funkce nebo funkce pro vytváření oken. V takovém případě je pro vaši tabulku historie optimální volbou clusterovaný index columnstore. Clusterované indexy columnstore poskytují dobrou kompresi dat a chovají se přívětivým způsobem vložení, který odpovídá způsobu generování dat historie.