Vistas indexadas de SQL Server

Vistas indexadas de SQL Server

Una vista en SQL Server se refiere a una consulta almacenada en un catálogo de base de datos para referencia futura. Las vistas de SQL Server actúan como tablas virtuales que no contienen datos reales por sí mismos. En su lugar, almacenan un conjunto de consultas que puede ejecutar en una tabla u otros objetos de base de datos.

Esta guía aprenderá cómo trabajar en las vistas de SQL Server y las vistas indexadas.

Vistas del servidor SQL: los conceptos básicos

Antes de discutir cómo trabajar con opiniones indexadas, aprendamos los conceptos básicos de crear una vista.

Supongamos que tiene una declaración de selección que devuelve un conjunto de resultados. Por ejemplo:

Usar salesDB;
Seleccione Top 10 * de ventas donde cantidad = 1000;

La consulta de ejemplo anterior devuelve los registros donde la cantidad es igual a 1000. Si queremos usar la misma consulta y obtener un conjunto de resultados similar, podemos guardarla en un .archivo sql y volver a ejecutarlo cuando sea necesario.

Una mejor manera de hacerlo es crear una vista que mantenga la consulta anterior. Por ejemplo, podemos crear una vista llamada Above_Milho, como se muestra en la consulta que se muestra a continuación:

Usar salesDB;
IR
Cree ver top_thilms como select * de ventas donde cantidad> 1000;

Una vez que tenemos la consulta como vista, podemos reutilizarla como:


IR
Seleccione * de Top_Thilms;

La consulta debe devolver el conjunto de resultados como:

En SQL Server Management Studio, puede ver las vistas almacenadas en una tabla navegando a:

Bases de datos -> Su base de datos de destino -> Tablas -> Vistas

Hay varias razones para usar vistas en SQL Server. Sin embargo, los principales incluyen seguridad y consistencia.

Para eliminar una vista desde una tabla, puede usar la consulta de vista Eliminar como se muestra:

Deje caer la vista si existe TOP_MILLS;

Vistas indexadas de SQL Server

Como se mencionó, una vista normal de SQL Server no contiene datos por sí mismo. Contiene un conjunto de consultas que producen un conjunto de resultados específico. Esto ayuda a proporcionar seguridad y consistencia. Sin embargo, una vista no proporciona ninguna mejora del rendimiento en el conjunto de resultados.

Ahí es donde entran en juego las opiniones indexadas.

Las vistas indexadas son como una tabla de base de datos normal porque pueden almacenar datos físicamente. Esta puede ser una gran herramienta que puede ayudar a mejorar el rendimiento de una consulta.

Discutamos la creación del trabajo con vistas indexadas en SQL Server.

Cómo crear una vista indexada?

Hay dos pasos clave al crear una vista indexada en SQL Server:

  1. Crear una vista con un parámetro de enlace de esquema.
  2. A continuación, cree un índice agrupado en la vista para materializarlo.

Tomemos un ejemplo para comprender cómo usar una vista indexada.

Considere la consulta de ejemplo a continuación que creó una vista indexada en la tabla de ventas.

Crear vista Sales_Indexed con Schemabinding como ventas selectas.Salesid, ventas.Productid, ventas.Cliente de DBO.Ventas donde cantidad> 1000;
IR

Notarás algunas cosas diferentes de una vista típica. Primero, incluimos la opción With Schemabindig.

Esta opción asegura que no puede alterar la estructura de las tablas en un formato que afecte la vista materializada subyacente a menos que deje caer la vista existente.

En segundo lugar, el nombramiento incluye un formato de dos partes. SQL Server requiere que defina el esquema.objeto al crear una vista indexada (en la misma base de datos).

PISTA: Recuerde que SQL Server actualizará los cambios aplicados a las tablas subyacentes a la vista indexada. Esto lleva a escribir por encima de las tablas referenciadas.

Una vez que se crea la vista, necesitamos crear un índice agrupado. Podemos crear un índice como:

Crear un índice clústico único my_index en dbo.sales_indexed (salesid);

La consulta anterior debe crear un índice agrupado en la vista. En SSMS, puede ver el índice agrupado como:

Una vez que tenemos el índice agrupado, podemos consultar los datos como:

Seleccionar * de DBO.sales_indexed;

SQL Server utiliza la vista Sales_Indexed en lugar de consultar las tablas reales.

Conclusión

En este artículo, aprendió cómo crear y usar vistas indexadas en SQL Server, lo que le permite crear una vista materializada.