Monitorare le viste materializzate
Monitorare l'integrità della vista materializzata nei modi seguenti:
- Monitorare le metriche di visualizzazione materializzate nel portale di Azure.
- La metrica
MaterializedViewAgeSeconds
relativa all'età della vista materializzata deve essere usata per monitorare l'aggiornamento della visualizzazione. Questa deve essere la metrica primaria da monitorare.
- La metrica
- Monitorare la
IsHealthy
proprietà restituita da.show materialized-view
. - Verificare la presenza di errori usando
.show materialized-view failures
.
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 non corretti nelle query di visualizzazione.
Risoluzione dei problemi relativi alle viste materializzate non integre
La MaterializedViewHealth
metrica indica se una vista 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 ha esito negativo. 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 . Vedere altri dettagli sulle limitazioni delle visualizzazioni materializzate e sui problemi noti - Il cluster non ha capacità sufficiente per materializzare tutti i dati in ingresso in tempo reale. In questo caso, potrebbero non esserci errori nell'esecuzione. Tuttavia, l'età della vista aumenta gradualmente, poiché non è in grado di mantenere il passo con la frequenza di inserimento. Potrebbero esserci diverse cause radice per questa situazione:
- Nel cluster sono presenti più viste materializzate e il cluster non ha capacità sufficiente per eseguire tutte le viste. Vedere i criteri di capacità di visualizzazione materializzati per modificare le impostazioni predefinite per il numero di viste materializzate eseguite contemporaneamente.
- La materializzazione è lenta perché sono presenti troppi record da aggiornare in ogni ciclo di materializzazione. Per altre informazioni sul motivo per cui questo influisce sulle prestazioni della visualizzazione, vedere come funzionano le viste materializzate. Il numero di extent che richiedono aggiornamenti in ogni ciclo viene fornito nella
MaterializedViewExtentsRebuild
metrica.
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 materializzazione eliminata. Di conseguenza, la visualizzazione 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 visualizzazione materializzata viene disabilitata automaticamente.
InsufficientCapacity: il cluster non ha capacità sufficiente per materializzare la vista materializzata. Ciò può indicare capacità di inserimento mancante o capacità di viste materializzate mancanti. Gli errori di capacità insufficienti possono essere temporanei, ma se si verificano di nuovo spesso è consigliabile aumentare il numero di istanze del cluster o aumentare la capacità pertinente nei criteri.
InsufficientResources: Il cluster non dispone di risorse sufficienti (CPU/memoria) per materializzare la vista materializzata. Questo errore può essere temporaneo, ma se tenta di aumentare o aumentare il numero di istanze del cluster.This failure may be transient, but it reoccurs try scaling the cluster up or out.
- 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 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 follower. - Il comando .show materialized-view failures funziona solo nel database leader.
Tenere traccia dell'utilizzo delle risorse
Consumo delle 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 quanto segue (sostituire DatabaseName
e ViewName
):
.show commands-and-queries
| where Database == "DatabaseName" and ClientActivityId startswith "DN.MaterializedViews;ViewName;"
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per