一、视图与物化视图:
资料来源:
people tools856--products--administration tools--data management--
administering peoplesoft database on oracle--using materialized views
在Oracle平台上将物化视图用于PeopleSoft数据库:
** 一、视图与物化视图: **
视图:
逻辑存在性;相当于一个sql的对象封装;实际查询时还是执行的sql
物化视图:
物理存在性;可以如其他实体表一般对其进行索引、分析和管理;物化视图获取复杂查询语句的结果并将数据保存到磁盘,可随时查询;实际查询时不再是执行sql
作用:显著提高查询性能
通常定义物化视图的SELECT语句包含可能需要大量时间和计算资源才能完成的大量数据查询、复杂的联结、汇总函数等。通过运行一次sql并将结果保存到可以使用和重用的表中,可以显著节省CPU和内存消耗。
** 二、PS系统中使用物化视图 **
** 1、定义物化视图 **
1.在record type类型为SQL View或Query View的视图上勾选Materialized View(此复选框仅在Oracle平台上可用)
物化视图的记录类型选项卡
a.Refresh Method **刷新方法**
i.Complete完全 默认选项,物化视图表将被完全刷新,可随时进行,耗时
ii.Fast快速 仅刷新修改过的行,build视图时物化视图表将被逐步刷新。
b.Refresh Mode **刷新模式**
i.On Demand按需 默认选项,管理员通过”实体化视图维护“页面刷新视图(用于所有类型的物化视图)
ii.On Commit提交
没当对物化视图的顶层信息表执行提交时,就会执行刷新。仅适用于单表聚合或基于联接的视图。此选项会影响性能,提交时不仅发生在基表中,还发生在物化视图中。在提交期间,Oracle系统执行触发器并更新物化视图日志表。
c.Build Options **构建选项**
i.Immediate即时 默认选项,系统创建视图并从基表填充视图(耗时取决于视图和数据的复杂性)
ii.Deferred延时 系统创建视图,但不会在构建过程中填充视图。管理员必须从”实体化视图维护“页面运行刷新
3.设置完毕后,build-create view构建物化视图,物化视图会自动分配给PSMATVW表空间
4.在plsql中的Materialized views对象中可以看到构建的物化视图
1. CREATE MATERIALIZED VIEW PS_HPS_ZYF_YEAR_VW
3. START WITH TO_DATE('09-07-2021 15:11:29', 'DD-MM-YYYY HH24:MI:SS') NEXT SYSDATE + (360/86400)
5. SELECT A.FIELDVALUE , A.XLATLONGNAME FROM PSXLATITEM A WHERE A.FIELDNAME = 'YEARCD' AND A.EFFDT = ( SELECT MAX(A1.EFFDT) FROM PSXLATITEM A1 WHERE A1.FIELDNAME = A.FIELDNAME AND A1.FIELDVALUE = A.FIELDVALUE AND A1.EFFDT <= SYSDATE) AND A.EFF_STATUS = 'A' AND A.FIELDVALUE >= '2021';
** 2、维护物化视图 **
1.路径:people tools-实用程序-管理-实体化视图-实体化视图维护(PTMAT_MAINT)
2.权限:管理员必须具有实体化视图管理员角色才能访问此页面(PTPT3000物化视图管理员)【页面相关查询:可根据页面名在”查询对象导航“页面中找到页面路径,根据页面路径在”结构与内容“中找到该页面的安全性授权】
3.页面说明:
5.运行成功后会将运行控制表PTMAT_RUNCNTL中的刷新时间间隔字段清零。
** 3、启用物化视图 **
3.页面说明:
**4、刷新模式与刷新方法组合分析**
** 5、刷新模式与刷新方法的使用参考 **
•如果需要具有陈旧数据的物化视图,请使用按需/完全刷新。
•如果要求是具有新数据的物化视图并且基表是查找表,则使用 On Commit/Fast refresh。
•如果需要具有新数据的物化视图并且基表不是高度事务性的,则使用 On Commit/Fast refresh。
•如果需要具有新数据的物化视图并且基表是高度事务性的,则使用按需/快速刷新。
** 三、实际案例 **
**1、需求**
薪酬预警提醒:
相当于是出一个数据报表(类似于query在线查询),对数据的即时性要求不高,可采用按需完全刷新的模式进行视图物化。
** 2、开发 **
新建视图、页面、组件(无需注册),将此组件挂载到主页薪酬管理页签下,编码控制等。
**优化** :对要查询的视图进行实体化提高查询效率。
**操作** :
勾选视图的materialized view复选框,物化视图选项参数默认为按需on demand、完全刷新
complete、immediate即时构建。build----create view
**刷新使用** :
页面设置刷新使用:
路径:people tools-实用程序-管理-实体化视图-实体化视图维护
操作:新增创建的物化视图,勾选刷新复选框设置该视图的刷新时间间隔,点击运行后台进程PTMATREFVW刷新物化视图数据。
作者:范宗远
审核:赵 静
编辑:王 锐