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" )
[;]
Примечание
Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
Аргументы
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 |
---|---|---|---|
1 234 | 1 | 3 | 3.0 |
Б. В этом примере показано, как увеличиваются издержки материализованных представлений по мере изменения данных в базовых таблицах.
Создайте таблицу:
CREATE TABLE t1 (c1 INT NOT NULL, c2 INT NOT NULL, c3 INT NOT NULL);
Вставьте пять строк в 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);
Создание материализованных представлений MV1:
CREATE MATERIALIZED VIEW MV1
WITH (DISTRIBUTION = HASH(c1))
AS
SELECT c1, COUNT(*) total_number
FROM dbo.t1 WHERE c1 < 3
GROUP BY c1;
Выборка из материализованного представления возвращает две строки.
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
- Инструкции T-SQL, поддерживаемые в Azure Synapse Analytics