12
返回列表 发新帖
楼主: zhyuh

关于物化视图(materialized view)的FAST refresh条件

[复制链接]
招聘 : 数据库管理员
论坛徽章:
38
ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14现任管理团队成员
日期:2012-10-18 17:11:21版主4段
日期:2012-05-15 15:24:112012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23
11#
发表于 2005-2-20 13:56 | 只看该作者
除非为实体化视图在基表上创建了实体化视图日志,否则不要使用快速刷新。
oracle可以在实体化视图中执行连接表的快速刷新。(9i)
8i真的很少了

使用道具 举报

回复
论坛徽章:
12
ITPUB元老
日期:2005-02-28 12:57:00福特
日期:2013-08-12 09:40:06迷宫蛋
日期:2013-06-03 13:48:41生肖徽章2007版:鸡
日期:2009-11-11 14:03:05BLOG每日发帖之星
日期:2009-06-17 01:01:03BLOG每日发帖之星
日期:2009-06-16 01:01:04生肖徽章2007版:龙
日期:2009-01-13 11:06:03参与2007年甲骨文全球大会(中国上海)纪念
日期:2007-08-06 15:19:02ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02会员2006贡献徽章
日期:2006-04-17 13:46:34
12#
 楼主| 发表于 2005-2-21 11:25 | 只看该作者
最初由 Yong Huang 发布
[B]

Something else suspicious is your database version. In my database, or documentation (http://download-west.oracle.com/docs/cd/A87860_01/doc/index.htm), I don't see xxx_mview_logs view. But I do have xxx_snapshot_logs which is of course empty in my test case.

Yong Huang [/B]


我做emp表测试是在9i环境下,开发涉及的mv EDEN_TRMN_SALES_INVC_MV
是在817环境下的

我也真的给搞糊了。

如果文档上说的都是对的,也就是如同各位所说的这样。那FAST_REFRESHABLE为'DML'或'DIRLOAD'是什么含义呢?决定这个值的根据是什么呢?

谢谢各位回复!

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
66
ITPUB元老
日期:2005-07-16 18:49:11授权会员
日期:2005-10-30 17:05:33ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44现任管理团队成员
日期:2011-05-07 01:45:08版主3段
日期:2012-05-15 15:24:11
13#
发表于 2005-2-21 11:28 | 只看该作者
FAST_REFRESHABLE
VARCHAR2(18)
  Indicates whether the materialized view is eligible for incremental (fast) refresh. Oracle calculates this value statically, based on the materialized view definition query:

NO - Materialized view is not fast refreshable, and hence is complex
DIRLOAD - Fast refresh is supported only for direct loads
DML - Fast refresh is supported only for DML operations
DIRLOAD_DML - Fast refresh is supported for both direct loads and DML operations
DIRLOAD_LIMITEDDML - Fast refresh is supported for direct loads and a subset of DML operations

使用道具 举报

回复
论坛徽章:
12
ITPUB元老
日期:2005-02-28 12:57:00福特
日期:2013-08-12 09:40:06迷宫蛋
日期:2013-06-03 13:48:41生肖徽章2007版:鸡
日期:2009-11-11 14:03:05BLOG每日发帖之星
日期:2009-06-17 01:01:03BLOG每日发帖之星
日期:2009-06-16 01:01:04生肖徽章2007版:龙
日期:2009-01-13 11:06:03参与2007年甲骨文全球大会(中国上海)纪念
日期:2007-08-06 15:19:02ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02会员2006贡献徽章
日期:2006-04-17 13:46:34
14#
 楼主| 发表于 2005-2-21 11:41 | 只看该作者
这个值为'DML'表明'Fast refresh is supported only for DML operations ',可是创建mv的时候没有建mv log呀,怎么会支持呢?

Yong Huang所做实验里也证实了,按他脚本所建的MV,其值也是"fast_refreshable is 'DML'"

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
66
ITPUB元老
日期:2005-07-16 18:49:11授权会员
日期:2005-10-30 17:05:33ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44现任管理团队成员
日期:2011-05-07 01:45:08版主3段
日期:2012-05-15 15:24:11
15#
发表于 2005-2-21 11:51 | 只看该作者
支持DML是因为它的MV创建时的select语句很简单,不含聚合函数吧。

使用道具 举报

回复
论坛徽章:
12
ITPUB元老
日期:2005-02-28 12:57:00福特
日期:2013-08-12 09:40:06迷宫蛋
日期:2013-06-03 13:48:41生肖徽章2007版:鸡
日期:2009-11-11 14:03:05BLOG每日发帖之星
日期:2009-06-17 01:01:03BLOG每日发帖之星
日期:2009-06-16 01:01:04生肖徽章2007版:龙
日期:2009-01-13 11:06:03参与2007年甲骨文全球大会(中国上海)纪念
日期:2007-08-06 15:19:02ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02会员2006贡献徽章
日期:2006-04-17 13:46:34
16#
 楼主| 发表于 2005-2-21 11:59 | 只看该作者
就是说fast_refreshable 只判断对创建mv的sql 的检查结果是否满足fast refresh条件,而不检查其他条件。

按目前的理解,好像只能这样解释了。
不知道有没有人知道更加准确和确信的答案。

谢谢大家!

使用道具 举报

回复
论坛徽章:
47
蒙奇·D·路飞
日期:2017-03-27 08:04:23马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11一汽
日期:2013-09-01 20:46:27复活蛋
日期:2013-03-13 07:55:232013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:322012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20
17#
发表于 2005-2-21 13:06 | 只看该作者
最初由 zhyuh 发布
[B]就是说fast_refreshable 只判断对创建mv的sql 的检查结果是否满足fast refresh条件,而不检查其他条件。
[/B]


I think that's the correct understanding. If someone can shed some light, please do so. I wish Oracle would be smarter and consider other factors (Having an mv log? Including new values? ...)

We still haven't solved your mystery (last refresh type is fast but you don't have mv log). Can you create a test case using a small data set like tables in scott schema? Tell us your DB version so we don't waste our time!

Yong Huang

使用道具 举报

回复
论坛徽章:
12
ITPUB元老
日期:2005-02-28 12:57:00福特
日期:2013-08-12 09:40:06迷宫蛋
日期:2013-06-03 13:48:41生肖徽章2007版:鸡
日期:2009-11-11 14:03:05BLOG每日发帖之星
日期:2009-06-17 01:01:03BLOG每日发帖之星
日期:2009-06-16 01:01:04生肖徽章2007版:龙
日期:2009-01-13 11:06:03参与2007年甲骨文全球大会(中国上海)纪念
日期:2007-08-06 15:19:02ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02会员2006贡献徽章
日期:2006-04-17 13:46:34
18#
 楼主| 发表于 2005-2-25 22:09 | 只看该作者

这是我的截屏图

可以看出dba_snapshot_logs的纪录数为0,下面几个mv的最近一次刷新方式为fast,而且其中几个mv的最近一次刷新时间为今天

不过它的fast_refreshable列的值都为dirload,是不是有什么特别呢?

如果有知道的高手路过,请解答一下,谢谢!

snapshot.jpg (46.09 KB, 下载次数: 53)

snapshot.jpg

使用道具 举报

回复
论坛徽章:
12
ITPUB元老
日期:2005-02-28 12:57:00福特
日期:2013-08-12 09:40:06迷宫蛋
日期:2013-06-03 13:48:41生肖徽章2007版:鸡
日期:2009-11-11 14:03:05BLOG每日发帖之星
日期:2009-06-17 01:01:03BLOG每日发帖之星
日期:2009-06-16 01:01:04生肖徽章2007版:龙
日期:2009-01-13 11:06:03参与2007年甲骨文全球大会(中国上海)纪念
日期:2007-08-06 15:19:02ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02会员2006贡献徽章
日期:2006-04-17 13:46:34
19#
 楼主| 发表于 2005-3-14 21:13 | 只看该作者
最初由 zhyuh 发布
[B]

可以看出该mv刷新前后的记录数不一样(116195 vs 116214),可见确实是刷新成功了 [/B]


勘误,这个记录数搞错了,拷了其它mv的刷新前后纪录过来(可能那时脑袋发晕),应该是刷新前后记录数一样的。

所以应该这样理解:

fast_refreshable 只判断对创建mv的sql 的检查结果是否满足fast refresh条件,而不检查其他条件

LAST_REFRESH_TYPE 只管最后一次刷新的方式。没有建MV log( or snapshot log ),也会执行fast refresh,oracle是不会报错的,但是refresh 结果跟refresh前一样,也就是说这种刷新不起任何作用。

今天碰到另外一个问题,查找以前的刷新纪录和文档,有了这个新发现。这个理解自己觉得应该是正确的。

不过oracle这个特性可真不好,把我害惨了。该列为bug

使用道具 举报

回复
论坛徽章:
226
BLOG每日发帖之星
日期:2010-02-11 01:01:06紫蛋头
日期:2013-01-12 23:45:222013年新春福章
日期:2013-02-25 14:51:24问答徽章
日期:2013-10-17 18:06:40优秀写手
日期:2013-12-18 09:29:10马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
20#
发表于 2005-3-14 21:51 | 只看该作者
可能是8i的bug吧,9i没有这个问题。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表