Zásady materializovaných zobrazení

Tento článek obsahuje informace o zásadách, které je možné nastavit v materializovaných zobrazeních.

Zásady uchovávání informací a ukládání do mezipaměti

Materializované zobrazení obsahuje zásady uchovávání informací a zásady ukládání do mezipaměti. Materializované zobrazení ve výchozím nastavení odvozuje zásady uchovávání a ukládání do mezipaměti databáze. Tyto zásady je možné změnit pomocí příkazů pro správu zásad uchovávání informací nebo příkazů pro správu zásad ukládání do mezipaměti.

Obě zásady se použijí pouze v materializované části materializovaného zobrazení. Vysvětlení rozdílů mezi materializovanou a rozdílovou částí najdete v tématu o fungování materializovaných zobrazení. Pokud je například zásada ukládání do mezipaměti materializovaného zobrazení nastavená na 7d, ale zásada ukládání do mezipaměti jeho zdrojové tabulky je nastavená na hodnotu 0d, může při dotazování materializovaného zobrazení stále docházet k chybějícím diskům. K tomuto chování dochází, protože zdrojová tabulka (část delta) se také účastní dotazu.

Zásady uchovávání informací materializovaného zobrazení nesouvisejí se zásadami uchovávání informací ve zdrojové tabulce. Zásady uchovávání informací ve zdrojové tabulce můžou být kratší než zásady uchovávání informací materializovaného zobrazení, pokud se zdrojové záznamy vyžadují po kratší dobu. Doporučujeme minimální zásadu uchovávání informací na několik dní a obnovitelnost nastavenou na hodnotu true ve zdrojové tabulce. Toto nastavení umožňuje rychlé obnovení chyb a pro diagnostické účely.

Poznámka

Zásady nulového uchovávání informací ve zdrojové tabulce se nepodporují.

Zásady uchovávání a ukládání do mezipaměti závisí na době vytvoření rozsahu. Poslední aktualizace záznamu určuje dobu vytvoření rozsahu materializovaného zobrazení.

Poznámka

Proces materializace se pokusí minimalizovat množství aktualizací materializované části zobrazení. V případech, kdy záznam není potřeba aktualizovat v zobrazení, se neaktualizuje. Pokud je take_any(*) například materializované zobrazení agregací, nové záznamy se stejnými klíči skupiny se do zobrazení znovu neingestují, a proto by zásady uchovávání informací byly nejdříve ingestovány.

Zásady dělení

Zásady dělení se dají použít v materializovaném zobrazení. Zásady dělení na materializované zobrazení doporučujeme konfigurovat pouze v případě, že většina nebo všechny dotazy na zobrazení filtrují podle jednoho z klíčů seskupování materializovaného zobrazení. Tato situace je běžná v řešeních s více tenanty, kde jedním z klíčů seskupování materializovaného zobrazení je identifikátor tenanta (například tenantId, ). customerId Další informace najdete v prvním případu použití popsaném na stránce podporované scénáře zásad dělení .

Příkazy pro změnu zásad dělení materializovaného zobrazení najdete v tématu Příkazy zásad dělení.

Přidání zásad dělení do materializovaného zobrazení zvýší počet rozsahů v materializovaném zobrazení a vytvoří další "práci" pro proces materializace. Další informace o důvodech tohoto chování najdete v tématu o procesu opětovného sestavení rozsahů, který je uvedený v části o fungování materializovaných zobrazení.

Zásady zabezpečení na úrovni řádků

Zabezpečení na úrovni řádků je možné použít v materializovaném zobrazení s několika omezeními:

  • Zásady lze použít pouze pro materializovaná zobrazení s agregačními funkcemi arg_max()/arg_min()/take_any() nebo když dotaz zabezpečení na úrovni řádků odkazuje na skupinu podle klíčů materializované agregace zobrazení.
  • Zásady se použijí pouze na materializovanou část zobrazení.
    • Pokud ve zdrojové tabulce materializovaného zobrazení nejsou definovány stejné zásady zabezpečení na úrovni řádků, může dotazování materializovaného zobrazení vrátit záznamy, které by měly být skryty zásadou. K tomu dochází, protože dotazování materializovaného zobrazení se dotazuje také na zdrojovou tabulku.
    • Pokud se jedná o zobrazení arg_max() nebo arg_min()/take_any() doporučujeme definovat stejné zásady zabezpečení na úrovni řádků ve zdrojové tabulce i materializovaném zobrazení.
  • Při definování zásad zabezpečení na úrovni řádků ve zdrojové tabulce materializovaného zobrazení arg_max() nebo arg_min()/take_any() se příkaz nezdaří, pokud v samotném materializovaném zobrazení nejsou definované žádné zásady zabezpečení na úrovni řádků. Účelem selhání je upozornit uživatele na potenciální únik dat, protože materializované zobrazení může zveřejnit informace. Pokud chcete tuto chybu zmírnit, proveďte jednu z následujících akcí:
    • Definujte zásady zabezpečení na úrovni řádků v materializovaném zobrazení.
    • Pokud chcete chybu ignorovat, přidejte allowMaterializedViewsWithoutRowLevelSecurity vlastnost do příkazu alter policy. Příklad:
    .alter table SourceTable policy row_level_security enable with (allowMaterializedViewsWithoutRowLevelSecurity=true) "RLS_function"

Příkazy pro konfiguraci zásad zabezpečení na úrovni řádků v materializovaném zobrazení najdete v tématu row_level_security příkazy zásad.