物化视图功能验证

物化视图及其在数据库中的应用,
文章介绍了物化视图的概念,它与普通视图的区别在于物化视图会保存查询结果并直接读取,而非每次查询时重新计算。文中通过创建测试表`DIM_OFFER`,然后建立物化视图`dim_offer_v`,并添加唯一索引,接着导入数据,最后刷新物化视图并验证数据删除后的视图更新情况,展示了物化视图在数据查询优化中的作用。

         物化视图(Materialized View)和视图(View)类似,也是一个视图名字对应一个SQL查询查询语句。不同之处在于:物化视图定义时使用了额外的关键字materialized, 它把结果集保存在起来,查询的时候直接读取保存的结果集,而不必扫描原始表。物化视图的结果集(即物化视图自己的数据)的存储和扫描方式和普通表的方式相同。

创建测试表

---- 创建测试表
drop table if exists DIM_OFFER;
create table DIM_OFFER
(
    OFFER_ID numeric(20) DEFAULT NULL,
    OFFER_TYPE varchar(100) DEFAULT NULL,
    PAY_TYPE varchar(2) DEFAULT NULL,
    TRADEMARK varchar(20) DEFAULT NULL,
    BUSI_TYPE varchar(6) DEFAULT NULL,
    OFFER_PLAN_TYPE varchar(6) DEFAULT NULL,
    PROD_SPECID varchar(20) DEFAULT NULL,
    PACKED_FLAG varchar(6) DEFAULT NULL,
    IS_GLOBAL varchar(6) DEFAULT NULL,
    DAILY_EFFECT varchar(6) DEFAULT NULL,
    STOP_DISPOSE varchar(6) DEFAULT NULL,
    MODIFY_DATE varchar(20) DEFAULT NULL,
    MODIFIER varchar(20) DEFAULT NULL,
    CREATE_DATE varchar(20) DEFAULT NULL,
    CREATER varchar(20) DEFAULT NULL,
    DEL_FLAG varchar(2) DEFAULT NULL,
    PRIMARY KEY(OFFER_ID)
);

select create_reference_table('DIM_OFFER');

创建物化视图

---- 创建物化视图 

SELECT run_command_on_workers($cmd$
    drop MATERIALIZED VIEW if exists dim_offer_v;
    create MATERIALIZED VIEW dim_offer_v 
    AS 
    select OFFER_ID,OFFER_TYPE,PAY_TYPE,TRADEMARK,BUSI_TYPE,OFFER_PLAN_TYPE,PROD_SPECID from DIM_OFFER;
$cmd$);

创建索引

SELECT run_command_on_workers($cmd$
    create unique index index_dim_offer_v_offer_id ON dim_offer_v ( OFFER_ID );
$cmd$);

加载数据

---- 导入数据

\COPY DIM_OFFER FROM '/home/postgres/work/Predeal/data/bak/offer.20221210.csv' WITH (DELIMITER ',');

刷新物化视图

---- 刷新物化视图
SELECT run_command_on_workers($cmd$
    REFRESH MATERIALIZED VIEW concurrently dim_offer_v with data;
$cmd$);

删除数据后视图更新验证

删除一条数据

更新视图

查询视图数据是否删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值