DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD (Transact-SQL)
Si applica a: Azure Synapse Analytics
Visualizza il numero di modifiche incrementali nelle tabelle di base che vengono mantenute per le viste materializzate in Azure Synapse Analytics. Il rapporto di overhead viene calcolato come TOTAL_ROWS / MAX (1, BASE_VIEW_ROWS).
Convenzioni relative alla sintassi Transact-SQL
Sintassi
DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ( "[ schema_name . ] materialized_view_name" )
[;]
Nota
Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.
Argomenti
schema_name
Nome dello schema a cui appartiene la vista.
materialized_view_name
Nome della vista materializzata.
Osservazioni:
Per mantenere aggiornate le viste materializzate in base alle modifiche ai dati nelle tabelle di base, il motore del data warehouse aggiunge righe di rilevamento a ogni vista interessata per riflettere le modifiche. La selezione da una vista materializzata include l'analisi dell'indice columnstore cluster della vista e l'applicazione di modifiche incrementali. Le righe di rilevamento (TOTAL_ROWS - BASE_VIEW_ROWS) non vengono eliminate finché gli utenti ricompilano la visualizzazione materializzata.
Il overhead_ratio viene calcolato come TOTAL_ROWS / MAX(1, BASE_VIEW_ROWS). Se è alto, le prestazioni di SELECT risulteranno ridotte. Gli utenti possono ricompilare la vista materializzata per ridurre il relativo rapporto di overhead.
Autorizzazioni
È richiesta l'autorizzazione VIEW DATABASE STATE .
Esempi
R. Questo esempio restituisce il rapporto di overhead di una vista materializzata.
DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.MyIndexedView");
Output di esempio:
OBJECT_ID | BASE_VIEW_ROWS | TOTAL_ROWS | OVERHEAD_RATIO |
---|---|---|---|
1234 | 1 | 3 | 3.0 |
B. Questo esempio mostra come l'overhead della vista materializzata aumenta per effetto delle modifiche ai dati nelle tabelle di base
Creare una tabella:
CREATE TABLE t1 (c1 INT NOT NULL, c2 INT NOT NULL, c3 INT NOT NULL);
Inserire cinque righe in t1
:
INSERT INTO t1 VALUES (1, 1, 1);
INSERT INTO t1 VALUES (2, 2, 2);
INSERT INTO t1 VALUES (3, 3, 3);
INSERT INTO t1 VALUES (4, 4, 4);
INSERT INTO t1 VALUES (5, 5, 5);
Creare viste materializzate MV1:
CREATE MATERIALIZED VIEW MV1
WITH (DISTRIBUTION = HASH(c1))
AS
SELECT c1, COUNT(*) total_number
FROM dbo.t1 WHERE c1 < 3
GROUP BY c1;
La selezione dalla vista materializzata restituisce due righe.
c1 | total_number |
---|---|
1 | 1 |
2 | 1 |
Controllare l'overhead della vista materializzata prima di eventuali modifiche ai dati nella tabella di base.
DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1")
Output di esempio:
OBJECT_ID | BASE_VIEW_ROWS | TOTAL_ROWS | OVERHEAD_RATIO |
---|---|---|---|
587149137 | 2 | 2 | 1.00000000000000000 |
Aggiornare la tabella di base. Questa query aggiorna 100 volte la stessa colonna nella stessa riga impostando lo stesso valore. Il contenuto della visualizzazione materializzata non cambia.
DECLARE @p INT;
SELECT @p = 1;
WHILE (@p < 101)
BEGIN
UPDATE t1 SET c1 = 1 WHERE c1 = 1;
SELECT @p = @p + 1;
END;
La selezione dalla vista materializzata restituisce lo stesso risultato dell'esempio precedente.
c1 | total_number |
---|---|
1 | 1 |
2 | 1 |
Di seguito è riportato l'output di DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1")
. Alla vista materializzata sono state aggiunte 100 righe (total_row - base_view_rows) e il relativo valore di overhead_ratio è aumentato.
OBJECT_ID | BASE_VIEW_ROWS | TOTAL_ROWS | OVERHEAD_RATIO |
---|---|---|---|
587149137 | 2 | 102 | 51.00000000000000000 |
Dopo la ricompilazione della vista materializzata, vengono eliminate tutte le righe di rilevamento per le modifiche incrementali ai dati e il rapporto di overhead della vista viene ridotto.
ALTER MATERIALIZED VIEW dbo.MV1 REBUILD
GO
DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1")
Output
| OBJECT_ID | BASE_VIEW_ROWS | TOTAL_ROWS | OVERHEAD_RATIO |
| --- | --- | --- | --- |
| 587149137 | 2 | 2 | 1.00000000000000000 |
Vedi anche
- Ottimizzazione delle prestazioni con vista materializzata
- CREATE MATERIALIZED VIEW AS SELECT (Transact-SQL)
- ALTER MATERIALIZED VIEW (Transact-SQL)
- EXPLAIN (Transact-SQL)
- sys.pdw_materialized_view_column_distribution_properties (Transact-SQL)
- sys.pdw_materialized_view_distribution_properties (Transact-SQL)
- sys.pdw_materialized_view_mappings (Transact-SQL)
- Viste del catalogo di Azure Synapse Analytics e Parallel Data Warehouse
- Viste di sistema supportate in Azure Synapse Analytics
- Istruzioni T-SQL supportate in Azure Synapse Analytics