设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
关于物化视图完全刷新时的一点提醒。
返回列表
发新帖
关于物化视图完全刷新时的一点提醒。
[复制链接]
11
|
9
|
2012-7-12 18:47:29
|
显示全部楼层
|
阅读模式
ORACLE10204。
曾人听说,10G的完全刷新在删除老数据时,和9I的些不一样,在10G里,删除前先DELETE 物化视图,而在9I,则是TRUNCATE,
刚才作了个10G的测试,如下:
1物化视图语句[/COLOR]
SCOTT@bi>select * from user_mviews;
OWNER
MVIEW_NAME
CONTAINER_NAME
QUERY
------------------------------ ------------------------------ ------------------------------ ---------------------------------------------
SCOTT
EMP_MV
EMP_MV
select * from emp5@tonc_scott
...
4 rows selected.
Elapsed: 00:00:00.03
2源表数据[/COLOR]
SCOTT@bi>select * from emp5@tonc_scott;
A
----------
8
2
2 rows selected.
Elapsed: 00:00:00.00
3物化视图数据[/COLOR]
SCOTT@bi>select * from EMP_MV;
A
----------
1
Elapsed: 00:00:00.01
4用10046跟踪刷新过程。[/COLOR]
SCOTT@bi>alter session set events '10046 trace name context forever, level 12';
Session altered.
Elapsed: 00:00:00.01
SCOTT@bi>exec dbms_mview.refresh('EMP_MV','C');
PL/SQL procedure successfully completed.
Elapsed: 00:00:01.92
SCOTT@bi>alter session set events '10046 trace name context off';
Session altered.
Elapsed: 00:00:00.00
SCOTT@bi>select * from EMP_MV;
A
----------
8
2
2 rows selected.
Elapsed: 00:00:00.00
SCOTT@bi>select sysdate from dual;
SYSDATE
-------------------
2009-08-12 09:46:54
Elapsed: 00:00:00.01
5物化视图版本[/COLOR]
SCOTT@bi>select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE10.2.0.4.0Production
TNS for 64-bit Windows: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
5 rows selected.
Elapsed: 00:00:00.03
6解析10046跟踪文件,发现这两句,证实上面的一个说法。[/COLOR]
delete from "SCOTT"."EMP_MV"
INSERT /*+ BYPASS_RECURSIVE_CHECK */ INTO "SCOTT"."EMP_MV" select * from
emp5@tonc_scott
7只是我手头没有9I版本的库,没法测试9I的情况。[/COLOR]
不清楚ORACLE为什么会用DELETE 而非TRUNCATE,即便TRUNCATE没法处理外键,也不至于作此修改,毕竟大数据量时,两者效率明显不一样?
回复
使用道具
举报
千问
|
2012-7-12 18:47:29
|
显示全部楼层
由truncate换成delete没什么奇怪,如果truncate的话,刷新失败后,视图数据全部丢失。 而delete或许可以回滚。至少保证视图数据还在。
这个过程我也跟踪过,的确是通过delete from view。
回复
使用道具
举报
千问
|
2012-7-12 18:47:29
|
显示全部楼层
失败了可以再刷新获取,若老数据还可以使用,那何必刷新?
回复
使用道具
举报
千问
|
2012-7-12 18:47:29
|
显示全部楼层
按你这么说,如果数据truncate了,然后刷新又失败了。 那你告诉我怎么办? 连查询都不能。
我觉得这个仅仅是一个ORACLE的想法而已,或许保证首先刷新失败了还能查询。其实说白了truncate和delete都是删除数据,而且delete速度还更慢,那你说为什么要换?
回复
使用道具
举报
千问
|
2012-7-12 18:47:29
|
显示全部楼层
原帖由
tom_fans
于 2009-8-12 10:50 发表
按你这么说,如果数据truncate了,然后刷新又失败了。 那你告诉我怎么办? 连查询都不能。
我觉得这个仅仅是一个ORACLE的想法而已,或许保证首先刷新失败了还能查询。其实说白了truncate和delete都是删除数据,而且delete速度还更慢,那你说为什么要换?
失败了再刷新,你得考虑刷新失败是很少出现;你这说法,DELETE的刷新失败后,还可以查询了,是没有道理的,或许人家要的数据已经千变万化了,
老数据留给人家,没任何意义。再者,数据库量大的时候,删除都很困难,很可能就在这一步失败,毕竟INSERT比DELETE简单得多。
回复
使用道具
举报
千问
|
2012-7-12 18:47:29
|
显示全部楼层
刷新指定ATOMIC_REFRESH = false,则采用TRUNCATE + APPEND方式
默认为TRUE,则使用DELETE + INSERT方式
参考:http://yangtingkun.itpub.net/post/468/473736
回复
使用道具
举报
千问
|
2012-7-12 18:47:29
|
显示全部楼层
因为10g的新功能flash back,你truncate的后就不能flashback了。所以改成delete,也是oracle的必然。相辅相承。
回复
使用道具
举报
千问
|
2012-7-12 18:47:29
|
显示全部楼层
原帖由
ZALBB
于 2009-8-12 11:08 发表
失败了再刷新,你得考虑刷新失败是很少出现;你这说法,DELETE的刷新失败后,还可以查询了,是没有道理的,或许人家要的数据已经千变万化了,
老数据留给人家,没任何意义。再者,数据库量大的时候,删除都很困难,很可能就在这一步失败,毕竟INSERT比DELETE简单得多。
如果你的物化视图是用户直接查询的对象,你就不会持有这个观点了。
不管刷新是否失败,TRUNCATE操作一致性,事务性已经被破坏,在INSERT完成之前,所有访问物化视图的用户得到的都是0条记录。
回复
使用道具
举报
千问
|
2012-7-12 18:47:29
|
显示全部楼层
有些东西觉得不一定设计时oracle没考虑到我们想得,为什么还选了delete,就是为了推他的新技术。玩的就是概念。
回复
使用道具
举报
千问
|
2012-7-12 18:47:29
|
显示全部楼层
我也觉得这个仅仅是一个ORACLE的判断准则而已。 的确视图刷新失败了,数据前变万化,以前的数据甚至可能造成错误都有可能。 但是不管如何,ORACLE还是保证刷新失败还能查询而已,不管以前的数据是否会造成问题,这个要靠用户来判断。
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行
1
早上起床牙龈有点血,吐了两口痰就没血了
2
女儿6岁最近感冒反反复复体重偏胖爱出汗
3
怀孕四五个月后还可以进行无痛人流吗?
4
医生开的补佳乐和孕酮片调经,期间也吃中药
5
没问题的英语怎么说
6
类风湿是否可以生孩子,对孩子是否有遗传
7
北京针灸埋线减肥
8
经常刺激生殖器使它充血勃起,有增长阴茎的
9
连续拉肚子2个多月一天最多十几次
10
预产期过了4天,急!
11
请问下牙槽内有一颗横着的牙,导致右下方第
12
近两年来,我的外阴唇反反复复飞瘙痒,也看
13
我家宝宝从出生开始肛门上方两厘米处有个深
14
药流后第一次来月经量大还有黑色血块
15
如何治疗感冒,该怎么治
16
我年龄38岁,这段时间每天下午四五点开始
17
唱歌鼻音重嗓子里有痰咳不出来咽不下去
18
纤雅减肥胶囊副作用
19
我做完人流医生只是开了一些产后逐瘀胶囊和头孢羟氨咀嚼片
20
月经量多伴有肚子痛,已经来十天了
21
16岁,皮肤经常起风团,两年了,看了医生
22
脚底右肺和斜方肌痛,
23
有些人说的肾气虚和血虚其实是不是就是阴
24
本人十九岁,男,右肾内部大小囊肿。
25
医生您好。我是3月30日做的刨宫
26
精子略带黄色,不是全黄,只是淡淡的黄
27
早上吃过饭一天都不觉的饿,还老觉着撑
28
药流完吃益母草颗粒了,还用打打点滴吗
29
男56岁,有高血压病史,近半个月失眠严重
30
月经一星期做爱会怀孕吗
31
我是一名焦虑症患者,复发了,为了升职的事没能升成
32
我还有慢性浅表性胃炎伴有胆汁返流。能治愈
33
出生27天的新生儿头上起了一片白色的小疙瘩
34
你还,我眼角长了个疖子,点了金霉素眼膏和
35
14岁,月经十多天了还不干净什么原因
36
柠檬水白天不能喝吗?会变黑会长斑吗?去皮
37
3个月前发病。胃粘膜糜烂
38
怀孕了,老是胸闷。
39
亲子鉴定能判断出是父子关系还是兄弟关系吗
40
呼吸困难,喉咙里好像有黏痰似的 ,做了CT
41
宝宝34天时,发现嘴里有好多白点,说是鹅口疮
42
小儿前天夜里两点发烧吃布洛芬退烧后第二天
43
您好,我是上午关于PETCT报告问题像您
44
我家宝宝1岁7个月了,宝宝现在很能吃饭,
45
下面很湿有点隐痛感觉像来月经一样,离月经还有7
46
宝宝生下来第一口应该吃什么,是吃鱼肝油吗
47
这几天我发现我腋下有两个硬块不知道怎么回是,也不疼不痒
48
你好,我用灵芝泡水喝的。是在例假快结束的
49
为什么我脸上的皮肤这么差。
50
医生,我24岁,排卵期白带带血丝,两三天
51
脖子后面好像有一根筋压到了后脑
52
左脸比右脸大一点,从嘴里看,左边的肉要多
53
白带变多,是白色的豆腐渣一样,阴道很痒
54
吃醋能软化血管吗斑块能清除
55
请问脑出血后遗症可以用针灸治疗吗?
56
我的白细胞是11.46请问这是什么病?
57
最近这些日子经常肚子痛,一痛就要上厕所
58
和爱人做爱无感觉就流了,做爱时间也不长.
59
我母亲昨天做ERCP没取出结石,请问什么时候能
60
哪请问下,我14日和男友爱爱了,但13号
61
左胸部下方心脏部分胀痛。就是心脏有时候跳
62
复方铝酸铋颗粒应在餐前服用,还是在餐后服用?
63
请你告诉我怎么治疗我要买什么药我之前用过
64
我最近一段时间脚腿浮肿不知是怎么回事?
65
我感冒啦,。。。。。。。。
66
医生您好,我没有女朋友,所以经常打飞机,
67
抑郁症到北京dsm好i
68
这几天脸上总是起皮,保湿的护肤品都不好使
69
脚底右肺和斜方肌痛?
70
小孩发烧引起抽搐吐沫。检查脑内囊肿怎么办
71
避孕套新用法
72
您好,我爷爷是胃癌晚期已经半年了,到现在什么都
73
双侧脑室内出血(少量、陈旧性)体宽左2.
74
前列腺4.4*3.9*2.8回声不均匀
75
气管切开后需缝针吗?
76
小时候经常生病,老是现在体质也很差,容易感冒和喉咙痛
77
丰胸秘籍王不留行
78
我的血压过低请问吃什么药
79
美容院用仪器给我拍脸,照片白白的说是铅汞
80
怀孕25周加2天了偶儿早上都会作吐
81
宝宝出生28天,昨天经皮黄疸测试是13.
82
每天早上咳一阵,白天不厉害,流鼻涕,咳嗽
83
我是一位教师。我的左肾有黄豆大的结石。但从没痛
84
我女儿是破腹产现在才一岁半可又怀孕那该怎
85
为什么最近毛孔无故扩张(广东话:就是起鸡
86
关节炎应该挂哪个科?麻烦您了!
87
提交您的五天前左手粉碎性骨折,通过手术切
88
宝宝两个多月了,脖子躺着的时候往右歪,给他扶正
89
头上长青春痘之后还会长高吗?怎么才能更快
90
肝癌可怕吗?得了肝癌还能活多久?
91
怎么防感冒的发生。。
92
y婴儿生下来1小时一摸就抖,肌肉发紧2天
93
大夫你好我30号做的无痛人流昨天有特殊情
94
你好,我想问一下,我五号查体还没查出怀孕
95
平时水喝不少,但大便不通,干燥
96
我今天是月经第十八天,排卵监测显示子宫内膜厚0
97
您好,这几天左胸深呼吸稍微有点痛,今早打
98
最近因为内分泌失调而导致的她不但心情不好,而且
99
八个月婴儿额头和鼻子摔伤,该用什么药才好
100
我6号流产18检查没有干净清的宫女们现在