En SQL Server, cuando se debería utilizar una vista indizada en lugar de una tabla de verdad?

StackOverflow https://stackoverflow.com/questions/3861476

  •  27-09-2019
  •  | 
  •  

Pregunta

Sé que en SQL Server puede crear índices en una vista, entonces la vista se guardan los datos de la tabla subyacente. A continuación, puede consultar la vista. Pero, ¿por qué tengo que utilizar la vista en lugar de mesa?

¿Fue útil?

Solución

Es posible que desee utilizar una vista para simplificar en las consultas. En nuestros proyectos, el consenso es sobre el uso de vistas para las interfaces, y especialmente los "interfaces de informes".

Imagina que tienes una tabla de clientes, y el gerente quiere un informe cada mañana con el nombre del cliente, y el saldo de su cuenta (o lo que sea). Si se codifican su informe sobre la mesa, se está creando un fuerte vínculo entre su informe y su mesa, por lo que los cambios posteriores difícil.

Por otro lado, si su informe realiza un punto de vista, se puede girar libremente la base de datos; siempre que la vista es el mismo informe de las obras, el director, es feliz y usted es libre de experimentar con la base de datos. Desea separar los metadatos de cliente desde la mesa principal cliente? ir por ella, y unir las dos tablas de la vista. ¿Quieres desnormalizar la información de compra para el cliente? no hay problema, la vista puede adaptarse ...

Para ser honesto, es mi punto de vista como un programador, pero otros usos sin duda puede encontrar por los gurús db:)

Otros consejos

Una tabla es donde se almacena físicamente los datos.

Una vista es donde se resumen las tablas o agrupados para hacer grupos de tablas más fácil de usar.

Una vista indizada permite una consulta para utilizar una vista, y no es necesario para obtener datos de la tabla subyacente, como la vista ya tiene los datos, lo que aumenta el rendimiento.

No se podía lograr el mismo resultado con sólo tablas, sin desnormalización su base de datos, y por lo tanto lo que podría crear otros problemas.

Una ventaja de utilizar una vista indizada es para ordenar los resultados de 2 o más columnas, donde las columnas se encuentran en diferentes tablas. es decir, tienen un punto de vista que es el resultado de tabla1 y tabla2 ordenados por table1.column1, table2.column2. A continuación, puede crear un índice en column1, columna2 a optimizar esa consulta

Básicamente, utilice un punto de vista:

  1. Cuando se utiliza la misma consulta compleja en muchas mesas, varias veces.
  2. Cuando la nueva necesidad del sistema para leer datos de la tabla de edad, pero no mira a cambiar su esquema percibido.

vistas indizadas pueden mejorar el rendimiento mediante la creación de índice más específico sin aumentar la redundancia.

Una vista es simplemente una instrucción SELECT que se le ha dado un nombre y se almacena en una base de datos. La principal ventaja de un punto de vista es que una vez que se la crea, actúa como una mesa para cualquier otro instrucciones SELECT que desea escribir.

La instrucción de selección para la vista puede hacer referencia a tablas, otros puntos de vista y funciones.

Se puede crear un índice en la vista (vista indizada) para mejorar el rendimiento. Una vista indizada es auto-actualización, lo que refleja de inmediato cambios en las tablas subyacentes.

Si su vista indizada sólo selecciona las columnas de una tabla, se podría también colocar el índice en esa tabla y consulta que directamente tabla, la vista sería sólo causa gastos generales para su base de datos. Sin embargo, si sus cubiertas instrucción SELECT con varias tablas se une etc de lo que podría obtener un aumento de rendimiento mediante la colocación de un índice en la vista.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top