DB2物化视图(MQT)是一类特殊的视图,下面就为您详细介绍DB2物化视图,供您参考,希望对您学习DB2数据库能够有所帮助。
可以将MQT看作一种物化的视图。视图和MQT 都是基于一个查询来定义的。每当视图被引用时,视图所基于的查询便会运行。但是,MQT 实际上则是将查询结果保存为数据,可以使用 MQT 中的这些数据,而不是使用底层表中的数据。
物化查询表可以显著提高查询的性能,尤其是提高复杂查询的性能。如果优化器确定查询或查询的一部分可以用一个 MQT 来解决,那么就会重写查询,以便利用MQT。MQT可以在创建表时定义,或者定义为系统维护的MQT,或者定义为用户维护的 MQT。
当创建系统维护s的DB2物化视图时,可以指定表数据是 REFRESH IMMEDIATE 还是 REFRESH DEFERRED。通过 REFRESH 关键字可以指定如何维护数据。DEFERRED 的意思是,表中的数据可以在任何时候通过 REFRESH TABLE 语句来刷新。不管是 REFRESH DEFERRED 还是 REFRESH IMMEDIATE 类型的系统维护的 MQT,对它们的 insert、update 或 delete 操作都是不允许的。但是,对于 REFRESH IMMEDIATE 类型的系统维护的 MQT,可以通过 对底层表的更改(即 insert、update 或 delete 操作)来更新。
- create table course_query as
- (
- select courseware_id, other_courseware_name from
- (
- select distinct courseware_id, other_courseware_name
- from metadata
- where other_courseware_name in
- (
- select distinct Other_courseware_name
- from METADATA
- where is_delete like '0'
- )
- )
- )
- data initially deferred refresh deferred;
- refresh table course_query;
【编辑推荐】