上海涛德顾问学院

查看: 6354|回复: 0

[Oracle 11g OCM] Oracle Database 11g 实体化(物化)视图的概要与汇总查询管理

[复制链接]

88

主题

0

好友

451

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2014-4-28 22:36:20 |显示全部楼层

Oracle 物化视图查询重写

Oracle 物化视图查询重写

Oracle 数据仓库使用实体化(物化)视图来存储概要数据。(在 Oracle 8i DB 中引入了实体化视图。)对数据仓库中大型数据库的查询通常涉及表之间的联接和/或聚集,如 SUM。实体化视图可提高查询性能,因为它在执行查询之前会预先计算开销巨大的联接和聚集操作并将结果存储到数据库。查询优化程序会自动识别何时可以及何时应该使用现有实体化视图来满足请求(查询)。然后,以透明方式重写请求以使用实体化视图。可以使用 CREATE MATERIALIZED VIEW SQL 语句创建实体化视图。

Oracle DB 提供了许多可简化概要管理的功能。例如,已向 DBMS_MVIEW 中添加了 EXPLAIN_MVIEW 过程,以便分析实体化视图。Oracle Database 11g 包含一些过程,如已添加到 DBMS_OLAP 程序包的 GENERATE_MVIEW_REPORT(用于生成包含 Summary Advisor 所提供建议的 HTML 报表)和 GENERATE_MVIEW_SCRIPT(用于根据建议生成需要使用的 SQL 语句)。

同样,DBMS_ADVISOR 也包含一些用于管理工作量和其它任务的过程,如 CREATE_SQLWKLD、IMPORT_SQLWKLD_SCHEMA、DELETE_SQLWKLD 等。
注:在 Oracle DB 中引入概要管理之前,管理员不得不花大量的时间和精力来手动创建概要表、确定要创建的概要表、为概要表编制索引、对概要表进行更新并向用户建议要使用的概要表。

在 Oracle DB 中引入的概要管理可减轻管理员的工作量;而 Oracle9i 和 Oracle 11g 数据库会进一步简化这一过程。
使用实体化视图进行概要管理概要管理的一种典型方法是由数据库管理员创建实体化视图。在最终用户查询表和视图时,Oracle 服务器的“查询重写机制”会自动重写 SQL 查询以使用实体化视图。实体化视图的使用对于查询数据的最终用户或应用程序来说是透明的。

创建实体化视图的准则
创建可满足最大数量查询的实体化视图。例如,如果确定对从表或事实表应用的查询通常有 20 个,则使用五六个明确定义的实体化视图就可以满足要求。实体化视图定义可以包含任意数量的聚集(SUM、COUNT(x)、COUNT(*)、COUNT(DISTINCT x)、AVG、VARIANCE、STDDEV、MIN 和 MAX)。还可以包含任意数量的联接。

定义包括所有度量的单一实体化视图,而不要基于相同的表定义多个 GROUP BY 列相同而度量不同的实体化视图。
使用聚集度量 AVG(x) 时,包括 COUNT(x) 以支持增量刷新。同样,如果存在 VARIANCE(x) 或 STDDEV(x),则始终应包括 COUNT(x) 和 SUM(x) 以支持增量刷新。

Oracle DB 中的概要管理减轻了数据库管理员的工作量,并且最终用户无需了解概要是否确已定义。实体化视图不仅将查询结果实体化到数据库表中,而且还生成查询重写引擎所使用的元数据信息以自动重写 SQL 查询,从而使用概要表。数据仓库中的实体化视图对于最终用户和数据库应用程序而言是透明的。此外,实体化视图还提供了自动刷新数据的可能性。
例如:

用户可以在 DBA 创建名为 CUST_SALES_MV 的实体化视图后执行原始查询。
CREATE MATERIALIZED VIEW cust_sales_mv
ENABLE QUERY REWRITE AS
SELECT c.cust_id,SUM(amount_sold)  
FROM   sales s,customers c
WHERE  s.cust_id = c.cust_id
GROUP BY c.cust_id;


只要用户或应用程序执行 SQL 查询:
SELECT c.cust_id,SUM(amount_sold)
FROM   sales s,customers c
WHERE  s.cust_id = c.cust_id
GROUP BY c.cust_id;


Oracle DB 就会以透明方式重写查询以使用实体化视图。
SELECT * FROM cust_sales_mv;

涛德顾问学院
Oracle OCM 11g认证培训Oracle 12c OCP 全国独家推出
大数据,BI商业智能,数据库,ADF,中间件,EBS,ODI,ETL全产业链培训服务提供商
回复

使用道具 举报

上海涛德顾问学院 ( 沪ICP备14006824号 )  

GMT+8, 2018-12-15 02:14 , Processed in 0.221776 second(s), 32 queries , Gzip On.

Top Data World

回顶部