分享
 
 
 

SQL 优化之 oracle物化视图

王朝java/jsp·作者佚名  2006-05-19
窄屏简体版  字體: |||超大  

在这里,其实大多都是我摘抄的参考资料……

供自己学习和借鉴……

可惜的是 也看的很少……

塔里木物流系统实施快三个月了,灾难的生活也半年了……

目前最大的工作就是优化sql……

这次,北京派来个真正的dba……

学会了物化视图!感觉很方便……

oracle物化视图

物化视图对于前台数据库使用者来说如同一个实际的表,具有和表相通的一般select操作,而其实际上是一个视图,一个定期刷新数据的视图(具体刷新时间在定义物化视图的时候已有定义),使用物化视图可以实现视图的所有功能,而物化视图确不是在使用时才读取,大大提高了读取速度,特别适用抽取大数据量表某些信息以及数据链连接表使用.具体语法如下:

CREATE MATERIALIZED VIEW an_user_base_file_no_charge

REFRESH COMPLETE START WITH SYSDATE

NEXT TRUNC(SYSDATE+29)+5.5/24

as

select distinct user_no

from cw_arrearage t

where (t.mon = dbms_tianjin.getLastMonth or

t.mon = add_months(dbms_tianjin.getLastMonth, -1))

drop materialized view an_user_base_file_no_charge;

比如一个很复杂的sql

select tt.CGFS CGFS,

tt.XQJHID XQJHID,

tt.XQJHBH XQJHBH,

tt.YHZBH YHZBH,

tt.TMBH TMBH,

tt.JHLX JHLX,

tt.JHSXBH JHSXBH,

tt.SXRQ SXRQ,

tt.JYHSFSBH JYHSFSBH,

tt.XMBH XMBH,

tt.XMMC XMMC,

tt.WZSXBH WZSXBH,

tt.GHQDBH GHQDBH,

tt.JHLBBH JHLBBH,

tt.ZZSXBH ZZSXBH,

tt.ZCZJLYBH ZCZJLYBH,

tt.SFCG SFCG,

tt.SFDL SFDL,

tt.CGDWBH CGDWBH,

tt.CGDWMC CGDWMC,

tt.SSDWBH SSDWBH,

tt.SSDWMC SSDWMC,

tt.DLRGWBH DLRGWBH,

tt.DLRGWMC DLRGWMC,

tt.DLRBH DLRBH,

tt.DLRMC DLRMC,

tt.DLRQ DLRQ,

tt.ZDGWBH ZDGWBH,

tt.ZDGWMC ZDGWMC,

tt.ZDRBH ZDRBH,

tt.ZDRMC ZDRMC,

tt.CGFAJHZBH CGFAJHZBH,

tt.CGFATBRQ CGFATBRQ,

tt.ZDRQ ZDRQ,

tt.BZ BZ,

tt.GSJE GSJE,

tt.JHXS JHXS,

tt.cgfagysbh cgfagysbh,

tt.cgfagysmc cgfagysmc,

tt.cgfajhbh cgfajhbh,

tt.cgfatbdwbh cgfatbdwbh,

tt.cgfatbdwmc cgfatbdwmc,

tt.mxzt mxzt,

tt.xqjhmc xqjhmc,

tt.SXKZZT SXKZZT,

tt.bjdbz bjdbz

from (select cc.cgfs, cc.mxzt, ab.*

from (select distinct c.xqjhid, a.cgfs, a.mxzt

from jh_b_xqjhmx a, jh_b_jhzdmxdy c

where 1 = 1

and a.xqjhmxbh = c.ysjhmxbh

and ((a.mxzt >= 28 and a.mxzt < 200) or a.mxzt in (12, 13))

and (a.flgw2 like '01010109%' escape '\')) cc

inner join (select e.XQJHID XQJHID,

e.sxkzzt sxkzzt,

e.XQJHBH XQJHBH,

e.xqjhmc xqjhmc,

e.YHZBH YHZBH,

e.TMBH TMBH,

e.JHLX JHLX,

e.JHSXBH JHSXBH,

e.SXRQ SXRQ,

e.JYHSFSBH JYHSFSBH,

e.XMBH XMBH,

e.XMMC XMMC,

e.WZSXBH WZSXBH,

e.GHQDBH GHQDBH,

e.JHLBBH JHLBBH,

e.ZZSXBH ZZSXBH,

e.ZCZJLYBH ZCZJLYBH,

e.SFCG SFCG,

e.SFDL SFDL,

e.CGDWBH CGDWBH,

e.CGDWMC CGDWMC,

e.SSDWBH SSDWBH,

e.SSDWMC SSDWMC,

e.DLRGWBH DLRGWBH,

e.DLRGWMC DLRGWMC,

e.DLRBH DLRBH,

e.DLRMC DLRMC,

e.DLRQ DLRQ,

e.CGFAJHZBH CGFAJHZBH,

e.CGFATBRQ CGFATBRQ,

e.ZDGWBH ZDGWBH,

e.ZDGWMC ZDGWMC,

e.ZDRBH ZDRBH,

e.ZDRMC ZDRMC,

e.ZDRQ ZDRQ,

e.BZ BZ,

e.GSJE GSJE,

e.JHXS JHXS,

e.cgfagysbh cgfagysbh,

e.cgfagysmc cgfagysmc,

e.cgfajhbh cgfajhbh,

e.cgfatbdwbh cgfatbdwbh,

e.cgfatbdwmc cgfatbdwmc,

ttt.bjdbz bjdbz

from jh_b_xqjh e,

(select distinct n.cgfabh, m.bjdbz

from cg_b_xbjd m, cg_b_xbjdmx n

where m.xjdbh = n.xjdbh) ttt

where jhlx != 1

and jhlx != 2

and e.xqjhbh = ttt.cgfabh(+)) ab on cc.xqjhid =

ab.xqjhid) tt

order by tt.mxzt, tt.CGFATBRQ desc

调整成

select tt.CGFS CGFS,

tt.XQJHID XQJHID,

tt.XQJHBH XQJHBH,

tt.YHZBH YHZBH,

tt.TMBH TMBH,

tt.JHLX JHLX,

tt.JHSXBH JHSXBH,

tt.SXRQ SXRQ,

tt.JYHSFSBH JYHSFSBH,

tt.XMBH XMBH,

tt.XMMC XMMC,

tt.WZSXBH WZSXBH,

tt.GHQDBH GHQDBH,

tt.JHLBBH JHLBBH,

tt.ZZSXBH ZZSXBH,

tt.ZCZJLYBH ZCZJLYBH,

tt.SFCG SFCG,

tt.SFDL SFDL,

tt.CGDWBH CGDWBH,

tt.CGDWMC CGDWMC,

tt.SSDWBH SSDWBH,

tt.SSDWMC SSDWMC,

tt.DLRGWBH DLRGWBH,

tt.DLRGWMC DLRGWMC,

tt.DLRBH DLRBH,

tt.DLRMC DLRMC,

tt.DLRQ DLRQ,

tt.ZDGWBH ZDGWBH,

tt.ZDGWMC ZDGWMC,

tt.ZDRBH ZDRBH,

tt.ZDRMC ZDRMC,

tt.CGFAJHZBH CGFAJHZBH,

tt.CGFATBRQ CGFATBRQ,

tt.ZDRQ ZDRQ,

tt.BZ BZ,

tt.GSJE GSJE,

tt.JHXS JHXS,

tt.cgfagysbh cgfagysbh,

tt.cgfagysmc cgfagysmc,

tt.cgfajhbh cgfajhbh,

tt.cgfatbdwbh cgfatbdwbh,

tt.cgfatbdwmc cgfatbdwmc,

tt.mxzt mxzt,

tt.xqjhmc xqjhmc,

tt.SXKZZT SXKZZT,

tt.bjdbz bjdbz

from mv_test tt

order by tt.mxzt, tt.CGFATBRQ desc

就可以了。]

mv_test tt

create materialized view MV_TEST

refresh force on demand

as

select cc.cgfs, cc.mxzt, ab.*

from (select distinct c.xqjhid, a.cgfs, a.mxzt

from wz_wlpt.jh_b_xqjhmx a, wz_wlpt.jh_b_jhzdmxdy c

where 1 = 1

and a.xqjhmxbh = c.ysjhmxbh

and ((a.mxzt >= 28 and a.mxzt < 200) or a.mxzt in (12, 13))

and (a.flgw2 like '01010109%' escape '\')) cc

inner join (select e.XQJHID XQJHID,

e.sxkzzt sxkzzt,

e.XQJHBH XQJHBH,

e.xqjhmc xqjhmc,

e.YHZBH YHZBH,

e.TMBH TMBH,

e.JHLX JHLX,

e.JHSXBH JHSXBH,

e.SXRQ SXRQ,

e.JYHSFSBH JYHSFSBH,

e.XMBH XMBH,

e.XMMC XMMC,

e.WZSXBH WZSXBH,

e.GHQDBH GHQDBH,

e.JHLBBH JHLBBH,

e.ZZSXBH ZZSXBH,

e.ZCZJLYBH ZCZJLYBH,

e.SFCG SFCG,

e.SFDL SFDL,

e.CGDWBH CGDWBH,

e.CGDWMC CGDWMC,

e.SSDWBH SSDWBH,

e.SSDWMC SSDWMC,

e.DLRGWBH DLRGWBH,

e.DLRGWMC DLRGWMC,

e.DLRBH DLRBH,

e.DLRMC DLRMC,

e.DLRQ DLRQ,

e.CGFAJHZBH CGFAJHZBH,

e.CGFATBRQ CGFATBRQ,

e.ZDGWBH ZDGWBH,

e.ZDGWMC ZDGWMC,

e.ZDRBH ZDRBH,

e.ZDRMC ZDRMC,

e.ZDRQ ZDRQ,

e.BZ BZ,

e.GSJE GSJE,

e.JHXS JHXS,

e.cgfagysbh cgfagysbh,

e.cgfagysmc cgfagysmc,

e.cgfajhbh cgfajhbh,

e.cgfatbdwbh cgfatbdwbh,

e.cgfatbdwmc cgfatbdwmc,

ttt.bjdbz bjdbz

from wz_wlpt.jh_b_xqjh e,

(select distinct n.cgfabh, m.bjdbz

from wz_wlpt.cg_b_xbjd m, wz_wlpt.cg_b_xbjdmx n

where m.xjdbh = n.xjdbh) ttt

where jhlx != 1

and jhlx != 2

and e.xqjhbh = ttt.cgfabh(+)) ab on cc.xqjhid =ab.xqjhid

这样原来的sql执行 要用1.433秒多,而使用物化视图执行才0.2秒……

但也不能多用,因为他需要实时来刷新视图才能保持和基表的一致……

所以很耗费资源……

恩……

不管怎么样,又学了点东西……

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有