REFRESH MATERIALIZED VIEW
REFRESH MATERIALIZED VIEW - 替换物化视图的内容
语法格式
REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name
[ WITH [ NO ] DATA ]
说明
REFRESH MATERIALIZED VIEW 完全替换了物化视图的内容。要执行此命令,您必须是物化视图的所有者。旧内容被丢弃。如果指定 WITH DATA(或默认值),则执行后备查询以提供新数据,并且物化视图保持可扫描状态。如果指定 WITH NO DATA ,则不会生成新数据,并且实例化视图将处于无法扫描状态。
CONCURRENTLY 和 WITH NO DATA 可能未一起指定。
参数说明
CONCURRENTLY
刷新实例化视图,而不锁定实例化视图上的并发选择。如果没有此选项,影响大量行的刷新将倾向于使用更少的资源并更快地完成,但可能会阻止尝试从物化视图读取的其他连接。在少量行受影响的情况下,此选项可能更快。
仅当物化视图中至少有一个 UNIQUE 索引仅允许使用列名并包含所有行时,才允许使用此选项。也就是说,它不能索引任何表达式,也不能包含 WHERE 子句。
尚未填充实例化视图时,可能无法使用此选项。
即使使用此选项,也一次只能对一个物化视图运行一个 REFRESH 。
name
要刷新的实例化视图的名称(可选择模式限定)。
注意事项
虽然保留了将来 CLUSTER操作的默认索引,但 REFRESH MATERIALIZED VIEW 不会根据此属性对生成的行进行排序。如果希望在生成时对数据进行排序,则必须在后备查询中使用 ORDER BY 子句。
示例
此命令将使用物化视图定义中的查询替换名为 order_summary 的物化视图的内容,并使其处于可扫描状态:
REFRESH MATERIALIZED VIEW order_summary;
此命令将释放与物化视图 annual_statistics_basis 关联的存储,并使其处于无法扫描状态:
REFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;