七、物化视图
物化视图其实就是一张数据表,引入的目的是为了提高数据仓库的查询性能,以空间换取时间的一种手段。
物化视图主要可以分为三类:聚合型,关联型和嵌套型。更新方式可以分为增量,全量。而enable query rewrite功能,可以保持应用语句不变的情况下,自动改变执行语句使用物化视图,极大提高了可用性。
CREATE MATERIALIZED VIEW product_sales_mv
PCTFREE 0 TABLESPACE demo
STORAGE (INITIAL 8k NEXT 8k PCTINCREASE 0)
BUILD IMMEDIATE
REFRESH FAST
ENABLE QUERY REWRITE
AS SELECT p.prod_name, SUM(s.amount_sold) AS dollar_sales,
COUNT(*) AS cnt, COUNT(s.amount_sold) AS cnt_amt
FROM sales s, products p
WHERE s.prod_id = p.prod_id GROUP BY p.prod_name;
聚合型需要注意添加count(*)字段,否则在增量更新时只有insert才生效,update和delete均无效。物化视图日志是记录原表的变化情况的一张表,如果需要使用增量更新则必须创建物化视图日志。
另外一个需要关注的是DBMS_ADVISOR.TUNE_MVIEW,这个存储过程是10g的新功能,作用是优化和改写你的创建语句,如果需要物化视图日志也会一并列出在USER_TUNE_MVIEW。但在某些版本中使用会有一定的问题。
select distinct a, b from tab
物化视图大量使用在分布数据库中,因此dblink也自然可能成为了考点之一了。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30122493/viewspace-1420100/ ,如需转载,请注明出处,否则将追究法律责任。