在具有大量列、索引和约束的表上创建物化视图时,我遇到了一个奇怪的问题。
我尝试运行命令:
CREATE MATERIALIZED VIEW mvX PARALLEL BUILD IMMEDIATE REFRESH FAST AS SELECT * FROM table_name
运行命令后,我得到:“无法从复杂查询创建快速刷新物化视图”所以我运行命令:dbms_mview.explain_mview('SELECT * FROM table_name') 并检查了 REFRESH_FAST_AFTER_INSERT 处的 mv_capabilities_table,出现以下消息:“此类型 MV 不支持 FROM 列表中的内联视图或子查询"
- 我已经使用主键和 rowid 在表上创建了一个成熟的视图日志。
- 我尝试在复制表上创建相同的成熟视图(CREATE TABLE copy_table_name as select * from table_name)并成功完成(也在该表上创建了日志)
此视图必须是 FAST REFRESH。我无法解释为什么在复制表上它成功而在原始表上它失败了。帮助?