WEB开发网
开发学院数据库DB2 DB2 基础: 物化查询表简介 阅读

DB2 基础: 物化查询表简介

 2009-11-20 00:00:00 来源:WEB开发网   
核心提示: 用户维护的 MQT这种物化查询表中的数据是由用户维护的,只有 REFRESH DEFERRED 物化查询表可以定义为 MAINTAINED BY USER,DB2 基础: 物化查询表简介(3),不能对用户维护的 MQT 发出 REFRESH TABLE 语句(用于系统维护的 MQT),但是, 通

用户维护的 MQT

这种物化查询表中的数据是由用户维护的。只有 REFRESH DEFERRED 物化查询表可以定义为 MAINTAINED BY USER。不能对用户维护的 MQT 发出 REFRESH TABLE 语句(用于系统维护的 MQT)。但是,用户维护的 MQT 却 允许对它们执行 insert、update 或 delete 操作。

清单 2 展示了一个创建 REFRESH DEFERRED 类型的用户维护的 MQT 的例子。这个表名为 ONTARIO_1995_SALES_TEAM,它基于数据库 SAMPLE 中的底层表 EMPLOYEE 和 SALES。同样,DATA INITIALLY DEFERRED 子句的意思是,在执行 CREATE TABLE 语句的时候,并不将数据插入到表中。MQT 被创建之后,便处于检查暂挂状态,在对它执行 SET INTEGRITY 语句之前,不能查询它。MATERIALIZED QUERY IMMEDIATE UNCHECKED 子句规定,该表将启用完整性检查,但是不必检查它是否违反了完整性约束,便可以使之脱离检查暂挂状态。

接下来,为了填充数据到 MQT 中,我们将导入从 EMPLOYEE 和 SALES 表中导出的数据。用于导出数据的查询与用于定义 MQT 的查询是一致的。然后,我们将插入另外一条记录到 ONTARIO_1995_SALES_TEAM 表中。

通过查询 ONTARIO_1995_SALES_TEAM 物化查询表发现,它现在已经填入了刚才导入的和插入的数据,这表明用户维护的 MQT 的确可以直接被修改。


清单 2. 创建由用户维护的 MQT

connect to sample 
... 
 
create table ontario_1995_sales_team as (select distinct e.empno, e.firstnme, 
 e.lastname, e.workdept, e.phoneno, 'Ontario' as region, 
 year(s.sales_date) as year from employee e, sales s 
  where e.lastname = s.sales_person and year(s.sales_date) = 1995 
  and left(s.region, 3) = 'Ont') 
   data initially deferred refresh deferred maintained by user 
 
set integrity for ontario_1995_sales_team materialized query immediate 
 unchecked 
 
export to ontario_1995_sales_team.del of del 
 select distinct e.empno, e.firstnme, e.lastname, e.workdept, e.phoneno, 
 'Ontario' as region, year(s.sales_date) as year from employee e, 
 sales s 
  where e.lastname = s.sales_person and year(s.sales_date) = 1995 
  and left(s.region, 3) = 'Ont' 
... 
Number of rows exported: 2 
 
import from ontario_1995_sales_team.del of del insert into 
ontario_1995_sales_team 
... 
Number of rows committed  = 2 
 
insert into ontario_1995_sales_team 
 values ('006900', 'RUSS', 'DYERS', 'D44', '1234', 'Ontario', 1995) 
 
select * from ontario_1995_sales_team 
 
EMPNO FIRSTNME   LASTNAME    WORKDEPT PHONENO REGION YEAR 
------ ------------ --------------- -------- ------- ------- ----------- 
000110 VINCENZO   LUCCHESSI    A00   3490  Ontario    1995 
000330 WING     LEE       E21   2103  Ontario    1995 
006900 RUSS     DYERS      D44   1234  Ontario    1995 
 
 3 record(s) selected. 
 
connect reset 

上一页  1 2 3 4 5 6 7  下一页

Tags:DB 基础 物化

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接