资源描述:
《物化视图创建和快速刷新》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、物化视图创建和快速刷新1.物化视图简介物化视图,它是用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,从而快速的得到结果。物化视图对应用透明,增加和删除物化视图不会影响应用程序中SQL语句的正确性和有效性;物化视图需要占用存储空间;当基表发生变化时,物化视图也应当刷新。其中物化视图有三种:聚集物化视图、包含连接物化视图、嵌套物化视图。但三种物化视图的快速刷新的限制条件有很大区另I」,而其他方面则区别不大。2.物化视图的创建和参数说明2.1物化视图实例>南昌营运数据为5000万条左右,每日新增20w条
2、左右。根据报表的实际需求,在物化视图中按照车牌,车队,天汇总统计后的数据为80万条。这样大大提高了查询的效率。>创建物化视图的语句如下:creatematerializedviewBUSINESS_DATA_CAR_MVBUILDDEFERRED-在创建时不刷新,按照用户设定的时间刷新refreshforce-如果可以快速刷新则进行快速刷新,否则进行完全刷新ondemand-按照指定的方式刷新startwithto_date(*14-07-201113:41:16*,*dd-mm-yyyyhh24:mi:ss*)--第一次刷新时间nextTRUNC(S
3、YSDATE+1)+2/24—刷新时间间隔asselectto_char(date_up,'yyyy・MM・dcT)asday,taxi_group,taxi_company,dispatch_car_no,service_no,sum(decode(sign(OYSTER_CARD_ORIGIN_SUM-OYSTER_CARD_LEFT_SUM),1,1,-1,0))ascardTime,county)astimes,sum(decode(sign(OYSTER_CARD_ORIGIN_SUM-OYSTER_CARD_LEFT_SUM),1,OYST
4、ER_CARD_ORIGIN_SUM-OYSTER_CARD_LEFT_SUM,-1,0))ascardSum,sum(sum)assum,sum(distance+free_distance)astotal_distanee,sum(decode(sign(distance),1,distance,-1,0,distanee))asdistance,sum(free_distanee)asfree_distanee,sum(decode(sign(date_down-date_up)J,(date_down-date_up)*24,-1,0))asw
5、orkTime,sum(waiting_hour*60+waiting_second)aswaiting_time,sum(decode(to_char(date_up/HH24,);02f,1/OS'J/041,0))asoverTimeTimes,fromSINGLE_BUSINESS_DATA_BSbuswheredate_up<=date_downand(date_down-date_up)<0.5anddistancexOanddistance<100andfree_distance<500groupbyservice_no,dispatc
6、h_car_no,to_char(date_up,yyyy-MM-dcT),taxi_group,taxi_company;,2.2参数介绍2.2.1BUILD>BUILDIMMEDIATE:是在创建物化视图的时候就生成数据,。>BUILDDEFERRED:则在创建时不生成数据,以后根据需要在生成数据。>默认为BUILDIMMEDIATEo222REFRESH>FAST:增量刷新用物化视图日志,来发送主表已经修改的数据行到物化视图中。>COMPLETE:完全刷新重新生成整个视图,如果请求完全刷新,oracle会完成完全刷新即使增量刷新可用。>FORCE
7、:如果增量刷新可用Oracle将完成增量刷新,否则将完成完全刷新,如果不指定刷新方法(FAST,COMPLETE,orFORCE)o>默认选项是Force02.2.3ON>ONDEMAND:指物化视图在用户需要的时候进行刷新。>ONCOMMIT:指出物化视图在对基表的DML操作提交的同时进行刷新。>默认是ONDEMANDo224STARTWITH>通知数据库完成从主表到本地表第一次复制的时间。225NEXT>说明了刷新的间隔时间。注:根据下一次刷新的时间二上一次执行完成的时间+时间间隔。为了保证在用户需要的时间点刷新,一般使用TRUNC()命令对时间取
8、整到天数,然后加上时间。如例子中的刷新是每天的凌晨2点开始执行物化视图的刷新。1.物化视图的快