Vistas Materializadas de Oracle vs vistas indexadas Sql Server
Oracle dispone de un objeto de base de datos denominado vista materializada, que a diferencia de una vista normal, almacena el conjunto de resultados de la consulta que define la vista.
Las tablas / vistas mencionadas en la consulta se conocen colectivamente como las tablas maestras. Una vista materializada es una réplica de la tabla original desde un único punto en el tiempo. Los datos de la vista materializada se pueden actualizar desde las tablas originales a través de un proceso llamado Actualizar. Oracle ofrece diferentes modos de actualización y opciones de intervalo como la actualización periódica automática y la actualización sobre demanda.
Las vistas materializadas se usan en los siguientes casos:
1. Replicación de datos
2. Cacheado de un conjunto de consultas costosas en un entorno de datawarehouse
3. Tuning de consultas de ejecución largas y complejas para mejorar el tiempo de ejecución / respuesta.
Una vista materializada puede ser, actualizable y de escritura. Con base en el entorno en que se utilizan Oracle ofrece diferentes tipos de vistas materializadas
Primary Key materialized view, Object materialized view, ROWID materialized view, Complex Materialized view , materialized join view y materialized aggregate view
SQL Server dispone de vistas indexadas que pueden proporcionar funcionalidades similares a las vistas materializadas . SQL Server permite la creación de un índice en una vista. La creación de un índice en una vista, se traduce en el almacenamiento de datos lógicos desde la vista en archivos de índice físicos materializando así los resultados de la consulta.
Seguidamente vemos un ejemplo de creacion de vistas en Oracle y Sql Server
Oracle |
SQL Server |
CREATE TABLE MAT_VIEW_MASTER_TABLE |
CREATE TABLE dbo.MAT_VIEW_MASTER_TABLE |
CREATE MATERIALIZED VIEW MAT_VIEW_1 |
CREATE VIEW dbo.MAT_VIEW_1 WITH SCHEMABINDING CREATE UNIQUE CLUSTERED INDEX MAT_VIEW_INDX_1 ON dbo.MAT_VIEW_1 (COL1) |