首页 > 其他分享 >快照snapshot与物化视图materializ…

快照snapshot与物化视图materializ…

时间:2023-04-30 11:32:36浏览次数:36  
标签:yh ---- 快照 qfcx 视图 materializ 刷新 oracle


一、快照
1.权限
grant create snapshot to zjbf;

2.创建
create   snapshot   SP_TEST
  refresh     complete    
  start with sysdate next sysdate+5/(24*60*60)
  as      
      select   *   from 

    
 SELECT * FROM SP_TEST WHERE ORG_NO=18

4.测试更新后快照是否会变
 UPDATE ZJBF.SCORG SET ORG_NAME='商丘面业' WHERE ORG_NO=18

5.查看快照文件

select * from stats$snapshot order by snap_id desc

二、物化视图
1.权限
grant create materialized view to zjbf;

2.创建
 create   materialized view   SP_mat_view
  refresh     force    
  start with sysdate next sysdate+5/(24*60*60)
  as      
      select   *   from 

3.查询
select * from sp_mat_view


创建的快照被做为一个物化视图存放,创建快照后,快照存放在物化视图里。

从以上两个创建语句来看,快照和视图是一样的,只是关键字不一样。且在创建快照和物化视图时,两个不能同名。

快速刷新和完全刷新。快速刷新需要快照的主表先有快照日志存在;完全刷新时oracle执行快照查询,将结果放入快照。快速刷新比完全刷新快,因为快速刷新将主数据库的数据经网络发送到快照的数据少,仅需传送主表中修改过的数据,而完全刷新要传送快照查询的全部结果。

例子:
下面以我在开发襄樊市电信局170话费催缴系统中使用快照加快查询速度的实现过程为例来说明快照的使用方法:

---- 170话费催缴系统是一个向用户电话播放催缴话费提示音的系统。用户的欠费金额存放在rs6000小型机sffw用户下的表yh_qfcx中(yh_qfcx表是一个随用户缴费情况动态变化的欠费记录表),而催缴系统的数据按要求存放在另外一台xf170服务器dmtcx用户下,为在dmtcx用户下使用sffw用户下表yh_qfcx中的部分数据,我在dmtcx用户下建立了yh_qfcx的快照S_yh_qfcx,以加快查询速度。

---- 具体步骤如下:

一、在sffw用户下建立表yh_qfcx的快照日志;
---- 只有先建立表yh_qfcx的快照日志,才能在快照中执行快速刷新。
---- Create snapshot log on yh_qfcx;

二、在dmtcx用户下建立到sffw用户的数据库链link_sf;
---- 建立了到sffw用户的数据库链后才能从sffw用户下的表yh_qfcx中获取数据。
---- Create database link link_sf
---- Connect to sffw identified by xxxxxxx using 'rs6000';

三、在dmtcx用户下建立快照s_yh_qfcx;
Create snapshot s_yh_qfcx as
Select yhh,qf6+qf5+qf4+qf3+qf2+qf1+qf qfje
From yh_qfcx@link_sf Where tjbz='K' and bz6+bz5+bz4+bz3+bz2+bz1+bz>0;

四、根据需要修改快照刷新的间隔时间;
---- dmtcx用户下的快照s_yh_qfcx为了与sffw用户下的主表yh_qfcx保持同步,需要不断刷新快照。只有设定了快照的刷新间隔时间,oracle才会自动刷新该快照。
---- 快照的刷新有两种方式:快速刷新和完全刷新。快速刷新需要快照的主表先有快照日志存在;完全刷新时oracle执行快照查询,将结果放入快照。快速刷新比完全刷新快,因为快速刷新将主数据库的数据经网络发送到快照的数据少,仅需传送主表中修改过的数据,而完全刷新要传送快照查询的全部结果。

Alter snapshot s_yh_qfcx refresh fast
Start with sysdate+1/1440 next sysdate+1/144;
{此SQL语句的意思为:设定oracle自动在1分钟
(1/24*60)后进行第一次快速刷新,以后每隔10分钟
(10/24*60)快速刷新一次。}
  Alter snapshot s_yh_qfcx refresh complete
     Start with sysdate+1/2880 next sysdate+1;
{此SQL语句的意思为:设定oracle自动在30钞
(30/24*60*60)后进行第一次完全刷新,
以后每隔1天完全刷新一次。}

---- 说明:
---- 1、因为快照刷新是服务器自动完成的,所以要保证oracle数据库启动了快照刷新进程。查看oracle数据库是否启动了快照刷新进程,可以以数据库sys身份查看视图V_$SYSTEM_PARAMETER中的参数snapshot_refresh_processes的值是否为1,如果不为1,则快照刷新进程未启动。

---- 2、启动快照刷新进程的方法为:修改oracle数据库的初始化文件initorcl.ora,将其中的snapshot_refresh_processes参数的值改由0改为1,然后重新启动oracle数据即可。

---- 3、需要说明的是:建立快照日志时oracle数据库为我们建立了一个基于yh_qfcx的触发器tlog$_yh_qfcx和快照日志表mlog$_yh_qfcx;建立快照时oracle数据库为我们建立了一个表、两个视图、一个索引,它们分别为:

一个表:snap$_s_yh_qfcx;
两个视图:mview$_s_yh_qfcx和s_yh_qfcx;
一个索引:I_snap$_s_yh_qfcx(
基于表snap$_s_yh_qfcx中的m_row$$字段。

标签:yh,----,快照,qfcx,视图,materializ,刷新,oracle
From: https://blog.51cto.com/u_548275/6237831

相关文章

  • 08-react修改state数据驱动视图UI的更新【注意和vue的区别】
    //setState修改状态如果是直接修改页面不会改变使用setState修改数据才会驱动视图的改变//setState的原理:修改玩状态之后会调用render函数importReactDomfrom"react-dom"import{Component}from"react"//react状态不可变要重新创建状态,及覆盖原来的......
  • MFC-SetImageList给列表视图控件设置图像列表
     CImageList*pImageList;HBITMAPhbmp1;CBitmap*pBitmap1;HBITMAPhbmp2;CBitmap*pBitmap2;HBITMAPhbmp3;CBitmap*pBitmap3;HBITMAPhbmp4;CBitmap*pBitmap4; pImageList=newCImageList();//创建一个CImageList类的指针变量pImageList->Cr......
  • EF Core 中原生SQL、存储过程、视图的使用
    包括EFCore中原型Sql的执行,包括存储过程和视图数据处理方法,同时包括参数化执行sql语句的注意事项。原生Sql查询原生sql查询使用如下两个方法进行,查询的结构只能映射到dbset关联的对象类型DBSet.FromSqlRaw()DBSet.FromSqlInterpolated()可以使用部分linq扩展方法.FromSqlR......
  • 视图层
    目录三板斧本质HttpResponse和redirect的区别JsonResponse上传文件Django视图层-FBV与CBVFBV中request对象的几个方法CBVCBV的源码剖析分析步骤:详细分析:使用操作对应知识点:三板斧本质用来处理请求的视图函数都必须返回HttpResponse对象#可以查看源码1.HttpResponse():肯定......
  • 高性能、快响应!火山引擎 ByteHouse 物化视图功能及入门介绍
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群物化视图是指将视图的计算结果存储在数据库中的一种技术。当用户执行查询时,数据库会直接从已经预计算好的结果中获取数据,而不需要重新计算视图。具体来说,物化视图是一种以表格形式存储的结果......
  • 表和视图的区别
    表和视图的区别区别:1、视图是已经编译好的sql语句。而表不是2、视图没有实际的物理记录。而表有。3、表是内容,视图是窗口4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能由创建的语句来修改5、表是内模式,试图是......
  • MFC-Create动态创建列表视图控件
     BOOLbb=mylist.Create(LVS_SMALLICON|WS_DLGFRAME,rect,this,10001);//动态创建列表视图控件/*参数1:DWORDdwStyle列表视图控件的风格标准样式:LVS_ALIGNLEFT显示格式是大图标或小图标时,标签......
  • Django之视图函数层 (必会三板斧 JsonResponse对象 request对象获取文件 FBV与CBV
    目录视图层之必会三板斧用来处理请求的视图函数都必须返回HttpResponse对象情况一:啥也不返回这里会报一个没有返回HttpResponse对象的错误,由此可见必须要返回一个HttpResponse对象情况二:返回HttpResponse对象点击Ctrl键查看源码可见是HttpResponse类,所以会返回一个值情......
  • Django框架——路由分发、名称空间、虚拟环境、视图层三板斧、JsonResponse对象、requ
    路由分发#Django支持每个应用都可以有自己独立的路由层、静态文件、模版层。基于该特性多人开发项目就可以完全解耦合,之后利用路由分发还可以整合到一起多个应用都有很多路由与视图函数的对应关系这个时候可以拆分到各自的路由层中使用路由分发之前总路由直接是路由与视图......
  • drf-视图集、路由系统、action装饰器
    1.9个视图扩展类1.两个视图基类:APIView、GenricAPIView2.5个视图扩展类:CreateModelMixin,UpdateModelMixin,RetrieveModelMixin,ListModelMixin,DestroyModelMixin3.9个视图子类:CreateAPIView,DestroyAPIView,ListAPIView,RetrieveAPIView,UpdateAPIView,ListCreateAPIView,......