Megosztás a következőn keresztül:


DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD (Transact-SQL)

A következőkre vonatkozik:Azure Synapse Analytics

Megjeleníti az Azure Synapse Analyticsben materializált nézetekhez tárolt alaptáblák növekményes változásainak számát. A többletterhelési arány kiszámítása TOTAL_ROWS/MAX (1, BASE_VIEW_ROWS) alapján történik.

Transact-SQL szintaxis konvenciói

Szintaxis

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

Jegyzet

Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.

Érvek

schema_name

Annak a sémának a neve, amelyhez a nézet tartozik.

materialized_view_name

A materializált nézet neve.

Megjegyzések

Annak érdekében, hogy a materializált nézetek frissüljenek az alaptáblák adatváltozásaival, az adattárházmotor követési sorokat ad hozzá minden érintett nézethez, hogy tükrözze a változásokat. A materializált nézetből való kiválasztás magában foglalja a nézet fürtözött oszlopcentrikus indexének vizsgálatát és a növekményes módosítások alkalmazását.  A követési sorok (TOTAL_ROWS – BASE_VIEW_ROWS) csak akkor lesznek eltávolítva, ha a felhasználók újraépítik a materializált nézetet.

A overhead_ratio TOTAL_ROWS/MAX(1, BASE_VIEW_ROWS) alapján számítjuk ki. Ha magas, a SELECT teljesítmény csökken. A felhasználók újraépíthetik a materializált nézetet a többletterhelés csökkentése érdekében.

Engedélyek

ADATBÁZIS ÁLLAPOTának megtekintése engedély szükséges.

Példák

Egy. Ez a példa egy materializált nézet többletterhelési arányát adja vissza.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.MyIndexedView");

Mintakimenet:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
1234 1 3 3.0

B. Ez a példa bemutatja, hogyan nő a materializált nézet többletterhelése az alaptáblák adatváltozásai során

Tábla létrehozása:

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

Öt sor beszúrása 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);

Materializált nézetek létrehozása MV1:

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

A materializált nézetből való kiválasztás két sort ad vissza.

c1 total_number
1 1
2 1

Ellenőrizze a materializált nézet többletterhelését, mielőtt bármilyen adat megváltozik az alaptáblában.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1")

Mintakimenet:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 2 1.00000000000000000

Frissítse az alaptáblát. Ez a lekérdezés ugyanazon sor ugyanazon oszlopát 100-szor frissíti ugyanarra az értékre. A materializált nézet tartalma nem változik.

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

A materializált nézetből való kiválasztás ugyanazt az eredményt adja vissza, mint korábban.

c1 total_number
1 1
2 1

Az alábbiakban a DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1")kimenete látható. 100 sor kerül a materializált nézetbe (total_row - base_view_rows), és a overhead_ratio megnő.

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 102 51.00000000000000000

A materializált nézet újraépítése után a növekményes adatváltozások nyomon követési sorai megszűnnek, és a nézet többletterhelési aránya csökken.

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

Hozam

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

Lásd még: