带您了解DB2物化视图

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 操作)来更新。

 
 
 
  1. create table course_query as   
  2. (   
  3. select courseware_id, other_courseware_name from   
  4. (   
  5. select distinct courseware_id, other_courseware_name   
  6. from metadata   
  7. where other_courseware_name in   
  8. (   
  9. select distinct Other_courseware_name   
  10. from METADATA   
  11. where is_delete like '0'   
  12. )   
  13. )    
  14. )  
  15. data initially deferred refresh deferred;  
  16. refresh table course_query;  

 

 

 

【编辑推荐】

DB2 logfilsiz参数设置

DB2命令行的连接

DB2循环查询的实现方法

DB2动态SQL的查看方法

带您了解DB2索引结构

THE END