Solución:
Ellos se llaman vistas indexadas en SQL Server: lea estos documentos técnicos para obtener más información:
- Crear una vista indexada
- Mejora del rendimiento con vistas indexadas de SQL Server 2008
Básicamente, todo lo que necesitas hacer es:
- crear una vista regular
- crear un índice agrupado en esa vista
¡y tu estas listo!
La parte complicada es que la vista debe satisfacer una gran cantidad de restricciones y limitaciones, que se describen en el documento técnico. Si haces esto, eso es todo. La vista se actualiza automáticamente, no se necesita mantenimiento.
Recursos adicionales:
- Crear y optimizar vistas en SQL Server
- Vistas indexadas de SQL Server
Aunque puramente desde la perspectiva de la ingeniería, las vistas indexadas suenan como algo que todo el mundo podría usar para mejorar el rendimiento, pero el escenario de la vida real es muy diferente. No he tenido éxito al usar vistas indexadas donde más las necesito debido a demasiadas restricciones sobre lo que se puede indexar y lo que no.
Si tiene uniones externas en las vistas, no se pueden utilizar. Además, las expresiones de tabla comunes no están permitidas … De hecho, si tiene algún orden en subselecciones o tablas derivadas (como con partición por cláusula), tampoco tiene suerte.
Eso deja solo escenarios muy simples para utilizar vistas indexadas, algo en mi opinión se puede optimizar creando índices adecuados en las tablas subyacentes de todos modos.
Me encantará escuchar algunos escenarios de la vida real en los que las personas realmente han utilizado vistas indexadas para su beneficio y no podrían haberlo hecho sin ellas.
Es posible que necesite un poco más de información sobre lo que es realmente una Vista materializada. En Oracle, estos son un objeto que consta de una serie de elementos cuando intenta construirlo en otro lugar.
Un MVIEW es esencialmente una instantánea de datos de otra fuente. A diferencia de una vista, los datos no se encuentran cuando consulta la vista, se almacena localmente en forma de tabla. El MVIEW se actualiza mediante un procedimiento en segundo plano que se inicia a intervalos regulares o cuando cambian los datos de origen. Oracle permite actualizaciones completas o parciales.
En SQL Server, usaría lo siguiente para crear un MVIEW básico para (completar) actualizar regularmente.
Primero, una vista. Esto debería ser fácil para la mayoría, ya que las vistas son bastante comunes en cualquier base de datos. Siguiente, una tabla. Debe ser idéntica a la vista en columnas y datos. Esto almacenará una instantánea de los datos de la vista. Luego, un procedimiento que trunca la tabla y la vuelve a cargar en función de los datos actuales en la vista. Finalmente, un trabajo que activa el procedimiento para iniciar su trabajo.
Todo lo demás es experimentación.