DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD (Transact-SQL)

適用対象:Azure Synapse Analytics

Azure Synapse Analytics 内の具体化されたビュー用に維持される、ベース テーブル内の増分変更の数が表示されます。 オーバーヘッド比率は、TOTAL_ROWS / MAX (1, BASE_VIEW_ROWS) として計算されます。

Transact-SQL 構文表記規則

構文

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

Note

この構文は、Azure Synapse Analytics のサーバーレス SQL プールでサポートされていません。

引数

schema_name

ビューが属するスキーマの名前。

materialized_view_name

具体化されたビュー*の名前です。

解説

ベース テーブルでのデータ変更によって具体化されたビューを更新し続けるため、データ ウェアハウス エンジンにより影響を受ける各ビューに追跡行が追加され、変更が反映されます。 具体化されたビューからの選択には、クラスター化列ストア インデックスのスキャンと増分変更の適用が含まれます。  追跡行 (TOTAL_ROWS - BASE_VIEW_ROWS) は、ユーザーが具体化されたビューを再構築するまで削除されません。

overhead_ratio は、TOTAL_ROWS/MAX(1, BASE_VIEW_ROWS) として計算されます。 高い場合は、SELECT のパフォーマンスが低下します。 ユーザーは、具体化されたビューを再構築して、オーバーヘッドの比率を下げることができます。

アクセス許可

VIEW DATABASE STATE アクセス許可が必要です。

A. この例では、具体化されたビューのオーバーヘッド比率が返されます。

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.MyIndexedView");

サンプル出力:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
1234 1 3 3.0

B. この例では、ベース テーブルのデータ変更に応じて、具体化されたビューのオーバーヘッドがどのように増加するかを示します

テーブルを作成します。

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

t1 に 5 つの行を挿入します。

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

具体化されたビュー MV1 を作成します。

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

具体化されたビューから選択すると、2 つの行が返されます。

c1 total_number
1 1
2 1

ベース テーブルのデータが変更される前に、具体化されたビューのオーバーヘッドを確認します。

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1")

サンプル出力:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 2 1.00000000000000000

ベース テーブルを更新します。 このクエリにより、同じ行の同じ列が 100 回同じ値に更新されます。 具体化されたビューの内容は変更されません。

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

具体化されたビューから選択すると、以前と同じ結果が返されます。

c1 total_number
1 1
2 1

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1") からの出力を次に示します。 具体化されたビュー (total_row - base_view_rows) に 100 行が追加され、その overhead_ratio が増加します。

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 102 51.00000000000000000

具体化されたビューを再構築すると、データの増分変更の追跡行がすべて削除され、ビューのオーバーヘッド比率が減少します。

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

出力

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

関連項目