Monitorování materializovaných zobrazení

Sledujte stav materializovaného zobrazení následujícími způsoby:

Poznámka

Materializace nikdy nepřeskočí žádná data, i když dochází k trvalým selháním. Zobrazení vždy zaručuje, že vrátí nejaktuálnější snímek dotazu na základě všech záznamů ve zdrojové tabulce. Konstantní selhání výrazně sníží výkon dotazů, ale nezpůsobí nesprávné výsledky v dotazech zobrazení.

Řešení potíží s materializovanými zobrazeními, která nejsou v pořádku

Metrika MaterializedViewHealth označuje, jestli je materializované zobrazení v pořádku. Než materializované zobrazení přestane být v pořádku, jeho stáří, poznamenáno metrikou MaterializedViewAgeSeconds , se postupně zvyšuje.

Materializované zobrazení může být v pořádku z některého nebo všech následujících důvodů:

  • Proces materializace selhává. Metrika MaterializedViewResult a .show materialized-view failures příkaz mohou pomoct identifikovat původní příčinu selhání.
  • Systém mohl materializované zobrazení automaticky zakázat kvůli změnám ve zdrojové tabulce. Pokud chcete zkontrolovat, jestli je zobrazení zakázané, můžete zkontrolovat IsEnabled sloupec vrácený příkazem.show materialized-view . Další podrobnosti najdete v tématu Omezení materializovaných zobrazení a známé problémy.
  • Cluster nemá dostatečnou kapacitu pro včasnou materializaci všech příchozích dat. V takovém případě nemusí dojít k selháním provádění. Věk zobrazení se ale postupně zvyšuje, protože nedokáže držet krok s rychlostí příjmu dat. Tato situace může mít několik původních příčin:
    • V clusteru je více materializovaných zobrazení a cluster nemá dostatečnou kapacitu pro spuštění všech zobrazení. Pokud chcete změnit výchozí nastavení počtu souběžně spuštěných materializovaných zobrazení, projděte si zásady kapacity materializovaného zobrazení .
    • Materializace je pomalá, protože v každém cyklu materializace existuje příliš mnoho záznamů k aktualizaci. Další informace o tom, proč to má vliv na výkon zobrazení, najdete v tématu , jak materializovaná zobrazení fungují. Počet rozsahů, které vyžadují aktualizace v každém cyklu, je uveden v metrice MaterializedViewExtentsRebuild .

Metrika MaterializedViewResult

Metrika MaterializedViewResult poskytuje informace o výsledku cyklu materializace a dá se použít k identifikaci problémů ve stavu materializovaného zobrazení. Metrika zahrnuje Database a MaterializedViewName a Result dimenzi.

Dimenze Result může mít jednu z následujících hodnot:

  • Úspěch: Materializace byla úspěšně dokončena.

  • SourceTableNotFound: Zdrojová tabulka zobrazení materializace byla vyřazena. Materializované zobrazení se v důsledku toho automaticky zakáže.

  • SourceTableSchemaChange: Schéma zdrojové tabulky se změnilo způsobem, který není kompatibilní s definicí materializovaného zobrazení (dotaz materializovaného zobrazení neodpovídá materializovanému schématu zobrazení). Materializované zobrazení se v důsledku toho automaticky zakáže.

  • InsufficientCapacity: Cluster nemá dostatečnou kapacitu pro materializaci materializovaného zobrazení. To může znamenat buď chybějící kapacitu příjmu dat , nebo chybějící kapacitu materializovaných zobrazení. Nedostatečná selhání kapacity můžou být přechodná, ale pokud se často opakuje, doporučujeme vertikálně navýšit kapacitu clusteru nebo zvýšit příslušnou kapacitu v zásadách.

  • Nedostatečné zdroje: Cluster nemá dostatek prostředků (procesor/paměť) k materializaci materializovaného zobrazení. Toto selhání může být přechodné, ale pokud se opakuje, zkuste cluster vertikálně navýšit nebo zesílit.

    • Pokud proces materializace dosáhne limitů paměti, je možné zvýšit limity skupin úloh $materialized zobrazení , aby podporovaly více paměti nebo procesoru pro proces materializace.

    Následující příkaz například změní skupinu úloh materializovaných zobrazení tak, aby během materializace používala maximálně 64 gigabajtů (GB) paměti na uzel (výchozí hodnota je 15 GB):

    .alter-merge workload_group ['$materialized-views'] ```
    {
      "RequestLimitsPolicy": {
        "MaxMemoryPerQueryPerNode": {
          "Value": 68719241216
        }
      }
    } ```
    

    Poznámka

    MaxMemoryPerQueryPerNode nelze nastavit na více než 50 % celkové paměti každého uzlu.

Materializovaná zobrazení v databázích sledujících

Materializovaná zobrazení lze definovat v databázích sledujících. Monitorování těchto materializovaných zobrazení by však mělo být založeno na vodicí databázi, kde je definováno materializované zobrazení. Konkrétně se jedná o tyto:

  • Metriky související se spuštěním materializovaného zobrazení (MaterializedViewResult, MaterializedViewExtentsRebuild) se nacházejí pouze v databázi leader. Metriky související s monitorováním (MaterializedViewAgeSeconds, MaterializedViewHealth, MaterializedViewRecordsInDelta) se zobrazí také v databázích sledujících.
  • Příkaz .show materialized-view failures funguje pouze v vodicí databázi.

Sledování spotřeby prostředků

Materializovaná zobrazení spotřeba prostředků: Prostředky spotřebované procesem materializace zobrazení lze sledovat pomocí .show commands-and-queries příkazu . Vyfiltrujte záznamy pro konkrétní zobrazení pomocí následujícího příkazu (nahraďte DatabaseName a ViewName):

.show commands-and-queries 
| where Database  == "DatabaseName" and ClientActivityId startswith "DN.MaterializedViews;ViewName;"