Compartir a través de


DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD (Transact-SQL)

Se aplica a: Azure Synapse Analytics

Muestra el número de cambios incrementales en las tablas base que se mantienen para las vistas materializadas en Azure Synapse Analytics. La proporción de sobrecarga se calcula como TOTAL_ROWS / MAX (1, BASE_VIEW_ROWS).

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Nota:

El grupo de SQL sin servidor no admite esta sintaxis en Azure Synapse Analytics.

Argumentos

schema_name

El nombre del esquema al que pertenece la vista.

materialized_view_name

El nombre de la vista materializada.

Comentarios

Para mantener las vistas materializadas actualizadas con cambios en los datos de las tablas base, el motor de almacenamiento de datos agrega filas de seguimiento a cada vista afectada para reflejar los cambios. La selección a partir de una vista materializada incluye el análisis del índice de almacén de columnas agrupado de la vista y la aplicación de cualquier cambio incremental.  Las filas de seguimiento (TOTAL_ROWS-BASE_VIEW_ROWS) no se eliminarán hasta que los usuarios vuelvan a generar la vista materializada.

El valor overhead_ratio se calcula como TOTAL_ROWS/MAX(1, BASE_VIEW_ROWS). Si es alto, el rendimiento de SELECT se degradará. Los usuarios pueden volver a generar la vista materializada para reducir su proporción de sobrecarga.

Permisos

Necesita el permiso VIEW DATABASE STATE.

Ejemplos

A. En este ejemplo se devuelve la proporción de sobrecarga de una vista materializada.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.MyIndexedView");

Resultados del ejemplo:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
1234 1 3 3.0

B. Este ejemplo se muestra cómo aumenta la sobrecarga de la vista materializada a medida que cambian los datos en las tablas base

Creación de una tabla:

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

Inserción de cinco filas en 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);

Creación de vistas 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;

La selección desde la vista materializada devuelve dos filas.

c1 total_number
1 1
2 1

Compruebe la sobrecarga de la vista materializada antes de realizar cualquier cambio en los datos de la tabla base.

DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1")

Resultados del ejemplo:

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 2 1,00000000000000000

Actualice la tabla base. Esta consulta actualiza 100 veces al mismo valor la misma columna de la misma fila. El contenido de la vista materializada no cambia.

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

La selección de la vista materializada devuelve el mismo resultado que antes.

c1 total_number
1 1
2 1

Ahora, se muestra la salida de DBCC PDW_SHOWMATERIALIZEDVIEWOVERHEAD ("dbo.mv1"). Se agregan 100 filas a la vista materializada (total_row-base_view_rows) y aumenta su valor overhead_ratio.

OBJECT_ID BASE_VIEW_ROWS TOTAL_ROWS OVERHEAD_RATIO
587149137 2 102 51,00000000000000000

Después de volver a generar la vista materializada, se eliminan todas las filas de seguimiento de los cambios de datos incrementales y se reduce la proporción de sobrecarga de la vista.

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

Resultados

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

Vea también