Materializált nézetszabályzatok

Ez a cikk a materializált nézeteken beállítható szabályzatokról tartalmaz információkat.

Adatmegőrzési és gyorsítótárazási szabályzat

A materializált nézet adatmegőrzési és gyorsítótárazási szabályzattal rendelkezik. A materializált nézet alapértelmezés szerint az adatbázis-adatmegőrzési és gyorsítótárazási szabályzatokat határozza meg. Ezek a házirendek adatmegőrzési házirend-kezelési parancsokkal vagy gyorsítótárazási szabályzatkezelési parancsokkal módosíthatók.

Mindkét szabályzatot csak a materializált nézet materializált részén alkalmazza a rendszer. A materializált és a különbözeti rész közötti különbségek magyarázatáért tekintse meg a materializált nézetek működését. Ha például egy materializált nézet gyorsítótárazási szabályzata 7d értékre van állítva, de a forrástábla gyorsítótárazási szabályzata 0d értékre van állítva, akkor a materializált nézet lekérdezésekor továbbra is előfordulhatnak lemezhibák. Ez a viselkedés azért fordul elő, mert a forrástábla (deltarész) is részt vesz a lekérdezésben.

A materializált nézet adatmegőrzési szabályzata nem kapcsolódik a forrástábla adatmegőrzési szabályzatához. A forrástábla adatmegőrzési szabályzata rövidebb lehet, mint a materializált nézet adatmegőrzési szabályzata, ha a forrásrekordokra rövidebb ideig van szükség. Javasoljuk, hogy legalább néhány napos minimális adatmegőrzési szabályzatot és a helyreállíthatóságot állítsa true (igaz) értékre a forrástáblában. Ez a beállítás gyors helyreállítást tesz lehetővé hibák és diagnosztikai célokra.

Megjegyzés

A forrástábla nulla adatmegőrzési szabályzata nem támogatott.

A megőrzési és a gyorsítótárazási szabályzatok is a mértéklétrehozási időtől függenek. A rekord utolsó frissítése határozza meg a materializált nézet létrehozási idejét.

Megjegyzés

A materializálási folyamat megpróbálja minimalizálni a nézet materializált részének frissítéseinek mennyiségét. Ha egy rekordot nem kell frissíteni a nézetben, az nem lesz frissítve. Ha például a materializált nézet take_any(*) aggregáció, az azonos csoportosítási kulcsok új rekordjai nem lesznek újra betöltve a nézetbe, ezért a megőrzési házirend a legkorábbi betöltéskor lesz betöltődve.

Partitioning szabályzat

A particionálási szabályzatok materializált nézetben is alkalmazhatók. Azt javasoljuk, hogy csak akkor konfiguráljon particionálási házirendet materializált nézetben, ha a legtöbb vagy az összes nézetlekérdezés a materializált nézet egyik csoportosítási kulcsával szűr. Ez a helyzet gyakori a több-bérlős megoldásokban, ahol a materializált nézet csoportosítási kulcsainak egyike a bérlő azonosítója (például tenantId, customerId). További információért tekintse meg a particionálási szabályzat által támogatott forgatókönyvek oldalán leírt első használati esetet.

A materializált nézet particionálási szabályzatának módosításához tekintse meg a particionálási szabályzat parancsai című témakört.

Ha particionálási szabályzatot ad hozzá egy materializált nézethez, azzal növeli a materializált nézetben a mértékek számát, és több "munkát" hoz létre a materializálási folyamathoz. A viselkedés okával kapcsolatos további információkért tekintse meg a materializált nézetek működésének részletes újraépítési folyamatát.

Row level security policy

A sorszintű biztonság materializált nézetben is alkalmazható, számos korlátozással:

  • A szabályzat csak a materializált nézetekre alkalmazható arg_max()/arg_min()/take_any() összesítési függvényekkel, vagy ha a sorszintű biztonsági lekérdezés a materializált nézet-összesítés kulcsaival hivatkozik a csoportra.
  • A szabályzat csak a nézet materializált részére lesz alkalmazva.
    • Ha nem ugyanaz a sorszintű biztonsági szabályzat van definiálva a materializált nézet forrástáblájában, akkor a materializált nézet lekérdezése olyan rekordokat adhat vissza, amelyeket a szabályzatnak el kell rejtenie. Ennek az az oka, hogy a materializált nézet lekérdezése a forrástáblát is lekérdezi.
    • Javasoljuk, hogy a forrástáblában és a materializált nézetben is definiálja ugyanazt a sorszintű biztonsági szabályzatot, ha a nézet arg_max() vagy arg_min()/take_any()).
  • Amikor sorszintű biztonsági szabályzatot határoz meg egy arg_max() vagy arg_min()/take_any() materializált nézet forrástáblájában, a parancs meghiúsul, ha a materializált nézeten nincs sorszintű biztonsági szabályzat definiálva. A hiba célja, hogy figyelmeztesse a felhasználót egy lehetséges adatszivárgásról, mivel a materializált nézet információkat tehet közzé. A hiba elhárításához hajtsa végre az alábbi műveletek egyikét:
    • Definiálja a sorszintű biztonsági szabályzatot a materializált nézetben.
    • A hiba figyelmen kívül hagyásához adja hozzá allowMaterializedViewsWithoutRowLevelSecurity a tulajdonságot az alter policy parancshoz. Például:
    .alter table SourceTable policy row_level_security enable with (allowMaterializedViewsWithoutRowLevelSecurity=true) "RLS_function"

Sorszintű biztonsági szabályzat materializált nézetben való konfigurálására szolgáló parancsokért lásd: row_level_security szabályzatparancsok.