Condividi tramite


Monitorare le viste materializzate

Si applica a: ✅Microsoft FabricAzure Esplora dati

Monitorare l'integrità della vista materializzata nei modi seguenti:

  • Monitorare le metriche di visualizzazione materializzate nella portale di Azure.
    • La metrica MaterializedViewAgeSeconds relativa all'età della visualizzazione materializzata deve essere usata per monitorare l'aggiornamento della visualizzazione. Questa deve essere la metrica primaria da monitorare.

Nota

La materializzazione non ignora mai i dati, anche se si verificano errori costanti. La vista è sempre garantita di restituire lo snapshot più aggiornato della query, in base a tutti i record nella tabella di origine. Gli errori costanti riducono significativamente le prestazioni delle query, ma non causano risultati errati nelle query di visualizzazione.

Risoluzione dei problemi relativi alle viste materializzate non integre

La MaterializedViewHealth metrica indica se una visualizzazione materializzata è integra. Prima che una vista materializzata diventi non integra, la MaterializedViewAgeSeconds sua età, annotata dalla metrica, aumenta gradualmente.

Una vista materializzata può diventare non integra per uno o tutti i motivi seguenti:

  • Il processo di materializzazione non riesce. La metrica MaterializedViewResult e il .show materialized-view failures comando consentono di identificare la causa radice dell'errore.
  • Il sistema potrebbe aver disabilitato automaticamente la vista materializzata, a causa delle modifiche apportate alla tabella di origine. È possibile verificare se la visualizzazione è disabilitata controllando la IsEnabled colonna restituita dal .show materialized-view comando . Per altri dettagli, vedere limitazioni delle viste materializzate e problemi noti
  • Il database non dispone di capacità sufficiente per materializzare tutti i dati in ingresso in tempo. In questo caso, l'esecuzione potrebbe non verificarsi errori. Tuttavia, l'età della visualizzazione aumenta gradualmente, poiché non è in grado di tenere il passo con la frequenza di inserimento. Potrebbero esserci diverse cause radice per questa situazione:

Metrica MaterializedViewResult

La MaterializedViewResult metrica fornisce informazioni sul risultato di un ciclo di materializzazione e può essere usata per identificare i problemi nello stato di integrità della visualizzazione materializzata. La metrica include e Database MaterializedViewName e una Result dimensione.

La Result dimensione può avere uno dei valori seguenti:

  • Operazione riuscita: materializzazione completata correttamente.

  • SourceTableNotFound: tabella di origine della vista di materializzazione eliminata. Di conseguenza, la vista materializzata viene disabilitata automaticamente.

  • SourceTableSchemaChange: lo schema della tabella di origine è cambiato in modo che non sia compatibile con la definizione della vista materializzata (la query di visualizzazione materializzata non corrisponde allo schema della vista materializzata). Di conseguenza, la vista materializzata viene disabilitata automaticamente.

  • InsufficientCapacity: il database non dispone di capacità sufficiente per materializzare la vista materializzata. Ciò può indicare la capacità di inserimento mancante o la capacità delle viste materializzate mancanti. Gli errori di capacità insufficienti possono essere temporanei, ma in caso di ripetizione, è consigliabile aumentare la capacità del database o aumentare la capacità pertinente nei criteri.

  • InsufficientResources: il database non dispone di risorse sufficienti (CPU/memoria) per materializzare la vista materializzata. Questo errore può essere temporaneo, ma se si riprova a ridimensionare o aumentare il database.

    • Se il processo di materializzazione raggiunge i limiti di memoria, è possibile aumentare i limiti del gruppo di carico di lavoro delle visualizzazioni $materialized per supportare più memoria o CPU per il processo di materializzazione da utilizzare.

    Ad esempio, il comando seguente modificherà il gruppo di carico di lavoro viste materializzate in modo da usare un massimo di 64 gigabyte (GB) di memoria per nodo durante la materializzazione (il valore predefinito è 15 GB):

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

    Nota

    MaxMemoryPerQueryPerNode non può essere impostato su più del 50% della memoria totale di ogni nodo.

Viste materializzate nei database follower

Le viste materializzate possono essere definite nei database di follower. Tuttavia, il monitoraggio di queste viste materializzate deve essere basato sul database leader, in cui è definita la vista materializzata. In particolare:

  • Le metriche correlate all'esecuzione di viste materializzate (MaterializedViewResult, MaterializedViewExtentsRebuild) sono presenti solo nel database leader. Le metriche correlate al monitoraggio (MaterializedViewAgeSeconds, MaterializedViewHealth, MaterializedViewRecordsInDelta) verranno visualizzate anche nei database di follower.
  • Il comando .show materialized-view failures funziona solo nel database leader.

Tenere traccia dell'utilizzo delle risorse

Consumo di risorse delle viste materializzate: è possibile tenere traccia delle risorse utilizzate dal processo di materializzazione delle viste materializzate usando il .show commands-and-queries comando . Filtrare i record per una visualizzazione specifica usando il comando seguente (sostituire DatabaseName e ViewName):

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