Udostępnij za pośrednictwem


DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD (Transact-SQL)

Dotyczy: Azure Synapse Analytics

Przedstawia liczbę zmian przyrostowych w tabelach podstawowych przechowywanych dla zmaterializowanych widoków w usłudze Azure Synapse Analytics. Współczynnik obciążenia jest obliczany jako TOTAL_ROWS / MAX (1, BASE_VIEW_ROWS).

Transact-SQL konwencje składni

Składnia

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

Nuta

Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze Azure Synapse Analytics.

Argumenty

schema_name

Nazwa schematu, do którego należy widok.

materialized_view_name

Nazwa zmaterializowanego widoku.

Uwagi

Aby zachować zmaterializowane widoki odświeżone ze zmianami danych w tabelach podstawowych, aparat magazynu danych dodaje wiersze śledzenia do każdego widoku, którego dotyczy problem, w celu odzwierciedlenia zmian. Wybranie zmaterializowanego widoku obejmuje skanowanie klastrowanego indeksu magazynu kolumn widoku i stosowanie wszelkich zmian przyrostowych.  Wiersze śledzenia (TOTAL_ROWS — BASE_VIEW_ROWS) nie są usuwane, dopóki użytkownicy nie skompilują zmaterializowanego widoku.

Overhead_ratio jest obliczana jako TOTAL_ROWS /MAX(1, BASE_VIEW_ROWS). Jeśli jest wysoka, wydajność select obniży się. Użytkownicy mogą ponownie skompilować zmaterializowany widok, aby zmniejszyć jego współczynnik obciążenia.

Uprawnienia

Wymaga uprawnień VIEW DATABASE STATE.

Przykłady

A. W tym przykładzie zwracany jest współczynnik narzutów zmaterializowanego widoku.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.MyIndexedView");

Przykładowe dane wyjściowe:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
1234 1 3 3.0

B. W tym przykładzie pokazano, jak zmaterializowany widok zwiększa się wraz ze zmianami danych w tabelach bazowych

Utwórz tabelę:

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

Wstaw pięć wierszy do 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);

Utwórz zmaterializowane widoki MV1:

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

Wybranie zmaterializowanego widoku zwraca dwa wiersze.

c1 total_number
1 1
2 1

Przed zmianami danych w tabeli podstawowej sprawdź zmaterializowany widok.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1")

Przykładowe dane wyjściowe:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 2 1.00000000000000000

Zaktualizuj tabelę podstawową. To zapytanie aktualizuje tę samą kolumnę w tym samym wierszu 100 razy do tej samej wartości. Zmaterializowana zawartość widoku nie zmienia się.

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

Wybranie zmaterializowanego widoku zwraca ten sam wynik, co poprzednio.

c1 total_number
1 1
2 1

Poniżej przedstawiono dane wyjściowe z DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1"). Do zmaterializowanego widoku są dodawane 100 wierszy (total_row — base_view_rows), a jego overhead_ratio jest zwiększana.

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 102 51.00000000000000000

Po odbudowaniu zmaterializowanego widoku wszystkie wiersze śledzenia zmian danych przyrostowych zostaną wyeliminowane, a współczynnik nakładu pracy widoku zostanie zmniejszony.

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

Wyjście

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

Zobacz też