Delen via


DBCC-PDW_SHOWMATERIALIZEDVIEWOVERHEAD (Transact-SQL)

van toepassing op:Azure Synapse Analytics-

Geeft het aantal incrementele wijzigingen weer in de basistabellen die worden bewaard voor gerealiseerde weergaven in Azure Synapse Analytics. De overheadverhouding wordt berekend als TOTAL_ROWS/MAX (1, BASE_VIEW_ROWS).

Transact-SQL syntaxisconventies

Syntaxis

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

Notitie

Deze syntaxis wordt niet ondersteund door een serverloze SQL-pool in Azure Synapse Analytics.

Argumenten

schema_name

De naam van het schema waartoe de weergave behoort.

materialized_view_name

De naam van de gerealiseerde weergave.

Opmerkingen

Als u gerealiseerde weergaven wilt vernieuwen met gegevenswijzigingen in basistabellen, voegt de datawarehouse-engine trackingrijen toe aan elke betrokken weergave om de wijzigingen weer te geven. Het selecteren in een gerealiseerde weergave omvat het scannen van de geclusterde columnstore-index van de weergave en het toepassen van incrementele wijzigingen.  De volgrijen (TOTAL_ROWS - BASE_VIEW_ROWS) worden pas verwijderd wanneer gebruikers de gerealiseerde weergave opnieuw opbouwen.

De overhead_ratio wordt berekend als TOTAL_ROWS /MAX(1, BASE_VIEW_ROWS). Als deze hoog is, verslechteren de prestaties van SELECT. Gebruikers kunnen de gerealiseerde weergave herbouwen om de overheadverhouding te verminderen.

Machtigingen

Hiervoor is MACHTIGING DATABASESTATUS WEERGEVEN vereist.

Voorbeelden

Een. In dit voorbeeld wordt de overheadverhouding van een gerealiseerde weergave geretourneerd.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.MyIndexedView");

Voorbeelduitvoer:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
1234 1 3 3.0

B. In dit voorbeeld ziet u hoe de gerealiseerde weergave-overhead toeneemt naarmate gegevenswijzigingen in basistabellen veranderen

Een tabel maken:

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

Voeg vijf rijen in t1in:

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

Gerealiseerde weergaven MAKEN MV1:

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

Als u een keuze in de gerealiseerde weergave selecteert, worden twee rijen geretourneerd.

c1 total_number
1 1
2 1

Controleer de gerealiseerde weergaveoverhead voordat gegevens in de basistabel worden gewijzigd.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1")

Voorbeelduitvoer:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 2 1.00000000000000000

Werk de basistabel bij. Met deze query wordt dezelfde kolom in dezelfde rij 100 keer bijgewerkt naar dezelfde waarde. De gerealiseerde weergave-inhoud verandert niet.

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

Als u selecteert in de gerealiseerde weergave, wordt hetzelfde resultaat geretourneerd als voorheen.

c1 total_number
1 1
2 1

Hieronder ziet u de uitvoer van DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1"). Er worden 100 rijen toegevoegd aan de gerealiseerde weergave (total_row - base_view_rows) en de bijbehorende overhead_ratio wordt verhoogd.

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 102 51.00000000000000000

Nadat de gerealiseerde weergave opnieuw is opgebouwd, worden alle volgrijen voor incrementele gegevenswijzigingen geëlimineerd en wordt de overheadverhouding voor weergave verminderd.

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

Uitvoer

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

Zie ook