DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD (Transact-SQL)

S’applique à :Azure Synapse Analytics

Affiche le nombre de modifications incrémentielles dans les tables de base qui sont conservées pour les affichages matérialisés dans Azure Synapse Analytics. Le taux de surcharge est calculé en tant que TOTAL_ROWS / MAX (1, BASE_VIEW_ROWS).

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Notes

Cette syntaxe n’est pas prise en charge par le pool SQL serverless dans Azure Synapse Analytics.

Arguments

schema_name

Nom du schéma auquel appartient la vue.

materialized_view_name

Nom de la vue matérialisée.

Notes

Pour garantir l’actualisation des vues matérialisées avec les modifications de données effectuées dans les tables de base, le moteur de l’entrepôt de données ajoute des lignes de suivi à chaque vue impactée pour refléter les modifications. La sélection à partir d’une vue matérialisée inclut l’analyse de l’index columnstore cluster de la vue et l’application des modifications incrémentielles éventuelles.  Les lignes de suivi (TOTAL_ROWS - BASE_VIEW_ROWS) sont conservées jusqu’à ce que les utilisateurs regénèrent (REBUILD) la vue matérialisée.

La valeur overhead_ratio se calcule ainsi : TOTAL_ROWS / MAX(1, BASE_VIEW_ROWS). Une valeur élevée dégrade les performances SELECT. Les utilisateurs peuvent regénérer la vue matérialisée pour réduire son taux de charge.

Autorisations

Requiert l'autorisation VIEW DATABASE STATE.

Exemples

R. Cet exemple retourne le taux de charge d’une vue matérialisée.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.MyIndexedView");

Exemple de sortie :

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
1234 1 3 3.0

B. Cet exemple montre l’augmentation de la charge de la vue matérialisée au fur et à mesure que des données sont modifiées dans les tables de base

Créer une table :

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

Ajouter cinq lignes dans 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);

Créer des vues matérialisées MV1 :

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

La sélection à partir de la vue matérialisée retourne deux lignes.

c1 total_number
1 1
2 1

Vérifiez la charge de la vue matérialisée avant toute modification de données dans la table de base.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1")

Exemple de sortie :

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 2 1.00000000000000000

Mettez à jour la table de base. Cette requête met à jour la même colonne dans la même ligne 100 fois avec la même valeur. Le contenu de la vue matérialisée ne change pas.

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

La sélection à partir de la vue matérialisée retourne le même résultat qu’avant.

c1 total_number
1 1
2 1

Vous trouverez ci-dessous la sortie de DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1"). 100 lignes sont ajoutées à la vue matérialisée (total_row - base_view_rows) et la valeur overhead_ratio est augmentée.

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 102 51.00000000000000000

Après la regénération de la vue matérialisée, toutes les lignes de suivi des modifications incrémentielles de données sont supprimées, et le taux de charge de la vue est réduit.

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

Sortie

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

Voir aussi