Sunteți pe pagina 1din 2

ESCUELA POLITECNICA NACIONAL FACULTAD DE INGENIERIA DE SISTEMAS BASE DE DATOS DISTRIBUIDAS NOMBRE: DAMARIS TARAPUES FECHA: 04/10/2013 DEBER N 3

VISTAS MATERIALIZADAS El SQL de las bases de datos Oracle permite crear vistas materializadas o materialized views. Estas vistas materializadas, aparte de almacenar la definicin de la vista propiamente dicha, tambin almacenan los registros que resultan de la ejecucin de la sentencia SELECT que define la vista. Como las vistas normales, la sentencia SELECT es la base de la vista, pero la sentencia SQL se ejecuta cuando se crea la vista y los resultados se almacenan fsicamente constituyendo una tabla real que ocupa sitio en el disco duro. Esta tabla puede definirse utilizando los mismos parmetros de almacenamiento que se pueden utilizar para una tabla normal (tablespace, etctera). Las vistas materializadas tambin admiten ndices, esta funcionalidad resulta muy til a la hora de mejorar el rendimiento de las sentencias PLSQL o SQL que utilicen vistas materializadas. Cuando una sentencia SQL o PL/SQL accede a una vista materializada el servidor de la base de datos Oracle, transforma la sentencia dirigindose directamente a los datos de la vista que estn ya almacenados, en lugar de utilizar los datos de las diferentes tablas utilizadas en la definicin de dicha vista. Evidentemente, si una vista (view) utiliza muchas tablas base enlazadas de forma compleja, y dicha vista va a ser utilizada frecuentemente, ser muy conveniente definirla como una vista materializada o materialized view. Esto contribuir enormemente a mejorar el rendimiento de la base de datos, ya que la sentencia SQL base de la vista slo se ejecutar una vez. Por otro lado, est el inconveniente de que si la vista materializada o materialized view va a tener que reutilizarse en el futuro, entonces necesitaremos un mecanismo para actualizar o refrescar dicha vista materializada, ya que las tablas base de la vista pueden haber sufrido modificaciones desde la creacin de la misma. Por todo esto, a la hora de determinar si una vista debe definirse como vista o es mejor definirla como vista materializada, debemos valorar los costes de tener que ejecutar la sentencia SQL base de una vista normal siempre que se acceda a dicha vista, frente a los costes de almacenamiento y actualizacin de una vista materializada. Sintaxis del comando SQL utilizado para crear vistas materializadas CREATE MATERIALIZED VIEW nombre_vistam [TABLESPACE nombre_ts]

[PARALELL (DEGREE n)] [BUILD {INMEDIATE|DEFERRED}] [REFRESH {FAST|COMPLETE|FORCE|NEVER|ON COMMIT}] [{ENABLE|DISABLE} QUERY REWRITE] AS SELECT ... FROM ... WHERE ... Los valores por defecto de las distintas opciones estn subrayados. Si se elige la opcin BUILD INMEDIATE, entonces la tabla asociada con la vista materializada se puebla con datos en el momento de la ejecucin del comando SQL CREATE. Por el contrario, si se utiliza BUILD DEFERRED, el comando CREATE crear slo la estructura de la vista, pero la tabla fsica asociada no se poblar con datos hasta que se realice el primer refresco o actualizacin de la vista materializada. La opcin REFRESH permite indicar el mecanismo que la base de datos utilizar para refrescar o actualizar la vista materializada. Los diferentes mecanismos y la forma en que una vista materializada o materialized view puede refrescarse, sern objeto de otro artculo en este blog. Como anticipo dir que un refresco completo o COMPLETE, significa que la tabla asociada con la vista materializada se borra completamente, volvindose a insertar todos los registros devueltos por la ejecucin de la sentencia SQL base de la vista, y que un refresco rpido o FAST, significa que la vista materializada se actualiza slo segn hayan sido los cambios realizados sobre las tablas base de la vista desde el ltimo refresco. Para poder utilizar el refresco rpido o FAST, hay que crear previamente los logs de la vista materializada utilizando el comando CREATE MATERIALIZED VIEW LOG. La opcin ENABLE/DISABLE QUERY REWRITE determina si el optimizador Oracle puede o no reescribir las sentencias SQL de manera que, de ser posible, en la fase de ejecucin se utilice la vista materializada en lugar de las tablas base de la vista incluidas en la sentencia SQL original. Este es un tema ciertamente complejo y que ser objeto de un artculo completo en este blog. Como anticipo indicar que la reescritura de sentencias SQL slo est disponible cuando se utiliza el optimizador Oracle basado en costes.

S-ar putea să vă placă și