2009-12-17 12 views
10

Tengo una vista que recopila datos de varias tablas. Si bien no hay índices en la vista en sí, todo lo que utiliza la vista parece beneficiarse de las tablas subyacentes que tienen índices. ¿Se están utilizando de forma automática? Si lo son, ¿qué sentido tiene crear índices en sus vistas? Cualquier artículo recomendado sobre este tema sería bienvenido.¿Cómo entran en juego los índices cuando se utiliza una vista?

Respuesta

9

Sí, los índices de tabla subyacentes se usan automáticamente; una vista simplemente extrae los datos de las tablas subyacentes después de todo.

En cuanto a las ventajas de crear índices en una vista, consulte this MS Technet article. Pequeño extracto:

Usar índices para mejorar la consulta el rendimiento no es un concepto nuevo; sin embargo, las vistas indizadas proporcionan beneficios de rendimiento adicionales que no se pueden lograr utilizando los índices estándar . Las vistas indizadas pueden aumentar rendimiento de las consultas en los siguientes maneras:

  • agregaciones pueden ser calculados previamente y se almacena en el índice para minimizar cálculos costosos durante la ejecución de la consulta.
  • Las tablas pueden unirse previamente y almacenarse el conjunto de datos resultante.
  • Se pueden almacenar combinaciones de uniones o agregaciones.
+1

Entonces, ¿qué sentido tiene tener vistas indexadas? ¿Para mejorar el rendimiento de inserción/actualización en la tabla, sin dejar de tener los índices de los datos que necesita? –

+0

El objetivo de tener una vista indizada es hacer que las búsquedas de la vista sean MÁS RÁPIDAS, especialmente en lo que respecta a los campos calculados. –

+1

Para decirlo de otra manera, un índice es un pequeño resumen de un cuerpo de datos más grande, sus tablas. Cuando haces una vista indexada, ni siquiera estás perdiendo el tiempo con tablas grandes de materias primas y sus índices; obtienes exactamente lo que quieres y rápidamente, ni más ni menos. –

2

El optimizador de consultas reescribe la consulta y "aplana" el uso de sub-consultas (que realmente es una vista). Por lo tanto, se usarán índices subyacentes.

Cuestiones relacionadas