Partilhar via


DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD (Transact-SQL)

Aplica-se a:Azure Synapse Analytics

Exibe o número de alterações incrementais nas tabelas base que são mantidas para exibições materializadas no Azure Synapse Analytics. A relação de despesas gerais é calculada como TOTAL_ROWS / MAX (1, BASE_VIEW_ROWS).

Transact-SQL convenções de sintaxe

Sintaxe

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

Observação

Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.

Argumentos

schema_name

O nome do esquema ao qual o modo de exibição pertence.

materialized_view_name

O nome da visão materializada.

Comentários

Para manter as exibições materializadas atualizadas com alterações de dados em tabelas base, o mecanismo de data warehouse adiciona linhas de controle a cada exibição afetada para refletir as alterações. A seleção a partir de uma vista materializada inclui a verificação do índice columnstore agrupado da vista e a aplicação de quaisquer alterações incrementais.  As linhas de rastreamento (TOTAL_ROWS - BASE_VIEW_ROWS) não são eliminadas até que os usuários reconstruam a exibição materializada.

O overhead_ratio é calculado como TOTAL_ROWS / MAX(1, BASE_VIEW_ROWS). Se for alto, o desempenho do SELECT diminuirá. Os usuários podem reconstruir a exibição materializada para reduzir sua taxa de despesas gerais.

Permissões

Requer permissão de VIEW DATABASE STATE .

Exemplos

Um. Este exemplo retorna a taxa de sobrecarga de uma exibição materializada.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.MyIndexedView");

Saída da amostra:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
1234 1 3 3.0

B. Este exemplo mostra como a sobrecarga de exibição materializada aumenta à medida que os dados são alterados nas tabelas base

Crie uma tabela:

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

Insira cinco linhas em 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);

Crie visualizações materializadas MV1:

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

A seleção a partir da vista materializada devolve duas linhas.

c1 total_number
1 1
2 1

Verifique a sobrecarga de exibição materializada antes de qualquer alteração de dados na tabela base.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1")

Saída da amostra:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 2 1.00000000000000000

Atualize a tabela base. Esta consulta atualiza a mesma coluna na mesma linha 100 vezes para o mesmo valor. O conteúdo da visualização materializada não muda.

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

Selecionar a partir da vista materializada devolve o mesmo resultado que antes.

c1 total_number
1 1
2 1

Abaixo está a saída de DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1"). 100 linhas são adicionadas à vista materializada (total_row - base_view_rows) e a sua overhead_ratio é aumentada.

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 102 51.00000000000000000

Depois de reconstruir a exibição materializada, todas as linhas de controle para alterações incrementais de dados são eliminadas e a taxa de sobrecarga de exibição é reduzida.

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

Realização

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

Ver também