oracle物化视图和临时表的区别是什么

2024-11-06 22:28:11
推荐回答(2个)
回答1:

物化视图的数据是永久保持的,而且会随着视图相关表数据的变化,根据定义定时或实时进行更新。物化视图大部分情况下是为了性能优化使用的,可以大大提升复杂sql的运行效率。

临时表的数据,根据定义在事务提交或session断开的时候会自动清除,因此更适合存放一些计算过程的中间数据。

回答2:

在做一个项目A时, 在生产库上创建物化视图日志, 使用dblink在项目A的数据库上创建物化视图, 物化视图是基于rowid的, 且生产库的表都是千万级的大表, 刷新时间又要求半小时刷新一次,在创建物化视图的时候使用的也是快速刷新, 但在刷新的时候会出现一个问题: 刷新时, 物化视图日志的内容会与主表的数据进行比对, 确认物化日志内的数据是否存在在主表内, 然后再刷新, 这样就拖慢了生产库的速度; 这个问题是客户那边的oracle数据库管理员发现的, 如何避免这个问题? 使用基于主键的物化视图是否能避免这个问题? 两种物化日志: Create Materialized View Log On SBDA_CPFTARACDT With Rowid; 两种物化视图: