物化视图添加删除列测试

简介: 物化视图添加删除列测试

materialized view add column

1,新建测试
create table css (a int ,b varchar2(10));
insert into css values( 1, 'a');
commit;

2,创建物化视图
CREATE MATERIALIZED VIEW LOG ON css WITH ROWID;

CREATE MATERIALIZED VIEW mv_css
REFRESH FAST ON DEMAND
WITH ROWID
START WITH TO_DATE('21-03-2024 12:00:00', 'DD-MM-YYYY HH24:MI:SS') NEXT /1:HRS/ SYSDATE + 1/(2460)
AS
SELECT
FROM css;
exec DBMS_MVIEW.REFRESH('mv_css');

-- 查询物化视图。
select from mv_css;
SQL> select
from mv_css;

 A B

 1 a

-- 手动执行刷新物化视图
--select job,what from all_jobs;
--exec dbms_job.run(3);

exec DBMS_MVIEW.REFRESH('mv_css');

1,表添加列,化物视图不会自动刷新,新添加列,物化视图新添加不能查询。
alter table css add (c int);
insert into css values( 2, 'b',2);
commit;
exec DBMS_MVIEW.REFRESH('mv_css');
select from css;
SQL> select
from css;

 A B               C

 1 a
 2 b               2

select * from mv_css;
SQL>

 A B

 1 a
 2 b

2,删除已经存在的删除列,导致会报错,物化视图刷新失败。
alter table css drop (b);

exec DBMS_MVIEW.REFRESH('mv_css');

ORA-12012: error on auto execute of job 3
ORA-12008: error in materialized view refresh path
ORA-00904: "CSS"."B": invalid identifier <<<<<<<<< B列缺失导致刷新失败。
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2809
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 3025
ORA-06512: at "SYS.DBMS_IREFRESH", line 689
ORA-06512: at "SYS.DBMS_REFRESH", line 195
ORA-06512: at line 1
SESSION ID:(27.56019) 2024-03-21 12:17:33.329 SERVICE NAME:(SYS$USERS) 2024-03-21 12:17:33.329

3,更改列长度,会导致视图变为error,需要重建。
drop MATERIALIZED VIEW LOG ON css;
drop MATERIALIZED VIEW mv_css;
drop table css;

alter table css modify b varchar2(100);
exec DBMS_MVIEW.REFRESH('mv_css');
select compile_state from user_mviews where mview_name ='MV_CSS';

COMPILE_STATE

COMPILATION_ERROR

1,表增加列对物化视图的刷新没有影响,但增加的新列不能在物化视图中显示,需要重建物化视图.
2,表删除列会导致物化视图刷新失败,但对增列的删除不受影响.
3,更改列长度,会导致视图变为error,需要重建。
4,ALTER MATERIALIZED VIEW LOG :语句来更改现有物化视图日志的存储特征或类型。

#
#

ALTER MATERIALIZED VIEW LOG :语句来更改现有物化视图日志的存储特征或类型。

https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/ALTER-MATERIALIZED-VIEW-LOG.html#GUID-4DAD5E6F-E30A-43D0-B023-634752E0E627

ALTER MATERIALIZED VIEW LOG ON css add (c) ;
ALTER MATERIALIZED VIEW LOG ON css drop (b) ;
alter table css add (b varchar2(10));
select compile_state from user_mviews where mview_name ='MV_CSS';
alter materialized view MV_CSS compile;
select compile_state from user_mviews where mview_name ='MV_CSS';

alter materialized view mv_test_mv add c int;

drop materialized view mv_css; <<< 需要手动删除,重建。
CREATE MATERIALIZED VIEW mv_css
REFRESH FAST ON DEMAND
WITH ROWID
START WITH TO_DATE('21-03-2024 12:00:00', 'DD-MM-YYYY HH24:MI:SS') NEXT /1:HRS/ SYSDATE + 1/(2460)
AS
SELECT
FROM css;

相关文章
测试编程笔试题No.1-输入表格列的英文名称,返回其对应的数字序号
同一个字母,在不同的位置,对应的值不一样,字母A在个位对应的是1,在十位对应的是26 ,因此,联想到了进制的移位运算和进制之间的转换。
测试编程笔试题No.1-输入表格列的英文名称,返回其对应的数字序号
|
SQL Oracle 关系型数据库
物化视图失效的几种情况及测试
说明:物化视图(Materialized Views)是查询的结果集,所有原表和视图的变更都将导致物化视图的失效,最近就发现了一个物化视图经常失效的问题,以下是整理的文档。
1443 0
|
监控 Oracle 关系型数据库
物化视图的快速刷新测试与物化视图日志
前言:一般在创建物化视图的时候,在数据量不大的时候,刷新的方式都是采用完全刷新的。随着系统的使用一些物化视图的源表的数据量在不断的增长,原本采用完全方式几秒就能刷新完成的物化视图,现在需要等待很久的时间才能刷新完成。
1202 0
|
Shell 测试技术
物化视图全量刷新与insert的redo生成量测试
之前的一篇博客中提到,物化视图的全量刷新也是一种高可用性的体现,但是性能如何呢,下面来简单的测试一下。 首先需要创建一个函数,这个函数会计算当前session下的一些指标信息。
878 0
|
SQL Shell Perl
物化视图全量刷新的简单测试
关于物化视图的刷新,如果数据的变化比较大采用了全量刷新的时候,会将现有表里的数据都清空然后放入新的数据,整个过程有点类似delete,insert的感觉,但是刷新后表的高水位线还是会保持不变,效果类似于truncate,insert.
965 0
|
关系型数据库 MySQL 索引
mysql选择联合索引还是单索引?索引列应该使用哪一个最有效?深入测试探讨
先建表   CREATE TABLE `menu_employee` (  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键,无实际意义',  `employee_pid` int(5)...
973 0
|
12天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
57 11
|
1月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
65 3
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
80 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)