Dela via


DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD (Transact-SQL)

gäller för:Azure Synapse Analytics

Visar antalet inkrementella ändringar i de bastabeller som finns för materialiserade vyer i Azure Synapse Analytics. Omkostnadsförhållandet beräknas som TOTAL_ROWS/MAX (1, BASE_VIEW_ROWS).

Transact-SQL syntaxkonventioner

Syntax

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

Not

Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.

Argument

schema_name

Namnet på schemat som vyn tillhör.

materialized_view_name

Namnet på den materialiserade vyn.

Anmärkningar

För att hålla materialiserade vyer uppdaterade med dataändringar i bastabeller lägger informationslagrets motor till spårningsrader i varje berörd vy för att återspegla ändringarna. Om du väljer från en materialiserad vy kan du genomsöka vyns klustrade kolumnlagringsindex och tillämpa eventuella inkrementella ändringar.  Spårningsraderna (TOTAL_ROWS – BASE_VIEW_ROWS) elimineras inte förrän användarna ÅTERSKAPAr den materialiserade vyn.

Overhead_ratio beräknas som TOTAL_ROWS/MAX(1, BASE_VIEW_ROWS). Om den är hög försämras SELECT-prestanda. Användare kan återskapa den materialiserade vyn för att minska dess omkostnader.

Behörigheter

Kräver BEHÖRIGHETEN VISA DATABASTILLSTÅND.

Exempel

A. Det här exemplet returnerar omkostnadsförhållandet för en materialiserad vy.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.MyIndexedView");

Exempelutdata:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
1234 1 3 3.0

B. Det här exemplet visar hur den materialiserade vyns omkostnader ökar när data ändras i bastabeller

Skapa en tabell:

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

Infoga fem rader i 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);

Skapa materialiserade vyer MV1:

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

Om du väljer från den materialiserade vyn returneras två rader.

c1 total_number
1 1
2 1

Kontrollera materialiserade visningskostnader innan data ändras i bastabellen.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1")

Exempelutdata:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 2 1.00000000000000000

Uppdatera bastabellen. Den här frågan uppdaterar samma kolumn på samma rad 100 gånger till samma värde. Innehållet i den materialiserade vyn ändras inte.

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

Om du väljer från den materialiserade vyn returneras samma resultat som tidigare.

c1 total_number
1 1
2 1

Nedan visas utdata från DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1"). 100 rader läggs till i den materialiserade vyn (total_row – base_view_rows) och dess overhead_ratio ökas.

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 102 51.00000000000000000

När den materialiserade vyn har återskapats elimineras alla spårningsrader för inkrementella dataändringar och vyns omkostnader minskas.

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

Utdata

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

Se även