物化视图

作者:郑德鼎 约 6 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Basis, Data Engineering, MM, SD, WM, 仓库管理, 开发, 数据工程, 物料管理, 系统管理, 销售分销
物化视图 - 封面图
物化视图 - 封面图

一、视图与物化视图:

二、PS系统中使用物化视图

1、定义物化视图

2、维护物化视图

3、启用物化视图

4、刷新模式与刷新方法组合分析

5、刷新模式与刷新方法的使用参考

三、实际案例

1、需求

2、开发

资料来源:

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平台上可用)

物化视图 - 封面图
物化视图 - 封面图

物化视图的记录类型选项卡

2.Materialized View Options物化视图选项

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

2. REFRESH COMPLETE ON DEMAND

3. START WITH TO_DATE('09-07-2021 15:11:29', 'DD-MM-YYYY HH24:MI:SS') NEXT SYSDATE + (360/86400)

4. AS

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.页面说明:

物化视图 - 封面图
物化视图 - 封面图

4.运行的进程为PTMATREFVW

物化视图 - 封面图
物化视图 - 封面图

5.运行成功后会将运行控制表PTMAT_RUNCNTL中的刷新时间间隔字段清零。

** 3、启用物化视图 **

1.路径:people tools-实用程序-管理-实体化视图-更改属性

2.功能:可在此页面设置启用或禁用实体化视图功能

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刷新物化视图数据。

物化视图 - 封面图
物化视图 - 封面图

作者:范宗远

审核:赵 静

编辑:王 锐

郑德鼎

关于作者:郑德鼎

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「物化视图.md」整理生成,仅用于内部技术分享与学习交流。