DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD(Transact-SQL)
적용 대상: Azure Synapse Analytics
Azure Synapse Analytics에서 구체화된 뷰용으로 저장된 기본 테이블에 증분 변경 횟수를 표시합니다. 오버헤드 비율은 TOTAL_ROWS / MAX (1, BASE_VIEW_ROWS)로 계산합니다.
Syntax
DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ( "[ schema_name . ] materialized_view_name" )
[;]
참고
이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.
인수
schema_name
뷰가 속한 스키마의 이름입니다.
materialized_view_name
구체화된 뷰의 이름입니다.
설명
구체화된 뷰를 기본 테이블의 데이터 변경 내용으로 계속 새로 고치기 위해 데이터 웨어하우스 엔진은 영향을 받는 각 뷰에 추적 행을 추가하여 변경 내용을 반영합니다. 구체화된 뷰에서 선택하면 뷰의 클러스터형 columnstore 인덱스 검색과 증분 변경 내용 적용이 포함됩니다. 사용자가 구체화된 뷰를 다시 빌드할 때까지 추적 행(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 | 6 |
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 | 6 |
2 | 1 |
다음은 DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1")
의 출력입니다. 행 100개가 구체화된 뷰(total_row-base_view_rows)에 추가되었으며 해당 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 및 병렬 데이터 웨어하우스 카탈로그 뷰
- Azure Synapse Analytics에서 지원되는 시스템 뷰
- Azure Synapse Analytics에서 지원되는 T-SQL 문