DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD (Transact-SQL)
Azure Synapse Analytics 内の具体化されたビュー用に維持される、ベース テーブル内の増分変更の数が表示されます。 オーバーヘッド比率は、TOTAL_ROWS / MAX (1, BASE_VIEW_ROWS) として計算されます。
構文
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 |
関連項目
- 具体化されたビューを使用したパフォーマンス チューニング
- CREATE MATERIALIZED VIEW AS SELECT (Transact-SQL)
- ALTER MATERIALIZED VIEW (Transact-SQL)
- EXPLAIN (Transact-SQL)
- sys.pdw_materialized_view_column_distribution_properties (Transact-SQL)
- sys.pdw_materialized_view_distribution_properties (Transact-SQL)
- sys.pdw_materialized_view_mappings (Transact-SQL)
- Azure Synapse Analytics と Parallel Data Warehouse のカタログ ビュー
- Azure Synapse Analytics でサポートされているシステム ビュー
- Azure Synapse Analytics でサポートされている T-SQL ステートメント