DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD (Transact-SQL)

platí pro:azure Synapse Analytics

Zobrazí počet přírůstkových změn v základních tabulkách uložených pro materializovaná zobrazení ve službě Azure Synapse Analytics. Poměr režie se vypočítá jako TOTAL_ROWS / MAX (1, BASE_VIEW_ROWS).

Transact-SQL konvence syntaxe

Syntax

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ( "[ schema_name . ] materialized_view_name" )
[;]

Poznámka

Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.

Argumenty

schema_name

Název schématu, do kterého zobrazení patří.

materialized_view_name

Název materializovaného zobrazení

Poznámky

Aby se materializovaná zobrazení aktualizovala o změny dat v základních tabulkách, modul datového skladu přidá do každého ovlivněného zobrazení sledovací řádky, aby odrážel změny. Výběr z materializovaného zobrazení zahrnuje skenování clusterovaného indexu columnstore zobrazení a použití jakýchkoli přírůstkových změn.  Řádky sledování (TOTAL_ROWS – BASE_VIEW_ROWS) se neodstraní, dokud uživatelé znovu sestaví materializované zobrazení.

Overhead_ratio se vypočítá jako TOTAL_ROWS / MAX(1, BASE_VIEW_ROWS). Pokud je vysoká, výkon SELECT se sníží. Uživatelé mohou znovu sestavit materializované zobrazení, aby snížili jeho režijní poměr.

Dovolení

Vyžaduje VIEWDATABASE povolení STÁTU .

Příklady

A. Tento příklad vrátí režijní poměr materializovaného zobrazení.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.MyIndexedView");

Ukázkový výstup:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
1234 1 3 3.0

B. Tento příklad ukazuje, jak se při změnách dat v základních tabulkách zvyšuje režijní náklady na materializované zobrazení.

Vytvoření tabulky:

CREATE TABLE t1 (c1 INT NOT NULL, c2 INT NOT NULL, c3 INT NOT NULL);

Vložte do t1pět řádků:

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);

Vytvoření materializovaných zobrazení MV1:

CREATE MATERIALIZED VIEW MV1
WITH (DISTRIBUTION = HASH(c1))
AS
SELECT c1, COUNT(*) total_number
FROM dbo.t1 WHERE c1 < 3
GROUP BY c1;

Výběr z materializovaného zobrazení vrátí dva řádky.

c1 total_number
1 1
2 1

Před změnami dat v základní tabulce zkontrolujte režii materializovaného zobrazení.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1")

Ukázkový výstup:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 2 1.00000000000000000

Aktualizujte základní tabulku. Tento dotaz aktualizuje stejný sloupec ve stejném řádku 100krát na stejnou hodnotu. Materializovaný obsah zobrazení se nezmění.

DECLARE @p INT;
SELECT @p = 1;
WHILE (@p < 101)
BEGIN
    UPDATE t1 SET c1 = 1 WHERE c1 = 1;
    SELECT @p = @p + 1;
END;

Výběr z materializovaného zobrazení vrátí stejný výsledek jako předtím.

c1 total_number
1 1
2 1

Níže je výstup z DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1"). Do materializovaného zobrazení (total_row – base_view_rows) se přidá 100 řádků a jeho overhead_ratio se zvýší.

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 102 51.00000000000000000

Po opětovném sestavení materializovaného zobrazení se eliminují všechny řádky sledování přírůstkových změn dat a sníží se poměr režie zobrazení.

ALTER MATERIALIZED VIEW dbo.MV1 REBUILD
GO
DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1")

Výstup

| OBJECT_ID | BASE_VIEW_ROWS | TOTAL_ROWS | OVERHEAD_RATIO |
| --- | --- | --- | --- |
| 587149137 | 2 | 2 | 1.00000000000000000 |

Viz také