刷新材料视图

刷新材料视图—替换实例化视图的内容

Synopsis

REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name
    [ WITH [ NO ] DATA ]

Description

REFRESH MATERIALIZED VIEW完全替换实例化视图的内容。要执行此命令,您必须是实例化视图的所有者。旧内容将被丢弃。如果指定了WITH DATA(或默认值),则执行后备查询以提供新数据,并且实例化视图处于可扫描状态。如果指定WITH NO DATA,则不会生成新数据,并且实例化视图将处于不可扫描状态。

不能一起指定CONCURRENTLYWITH NO DATA

Parameters

  • CONCURRENTLY

    • 刷新实例化视图,而不会锁定实例化视图上的并发选择。如果没有此选项,则影响很多行的刷新将倾向于使用较少的资源并更快地完成,但是可能会阻止其他尝试从实例化视图读取的连接。在少数行受到影响的情况下,此选项可能会更快。

仅当实例化视图上至少有一个UNIQUE索引(仅使用列名并包含所有行)时,才允许使用此选项。也就是说,它不能是表达式索引或包含WHERE子句。

如果尚未填充实例化视图,则可能无法使用此选项。

即使使用此选项,一次也只能针对一个实例化视图运行一个REFRESH

  • name

    • 要刷新的实例化视图的名称(可选,由模式限定)。

Notes

虽然保留了将来的CLUSTER操作的默认索引,但REFRESH MATERIALIZED VIEW不会基于此属性对生成的行进行排序。如果要在生成时对数据进行排序,则必须在后备查询中使用ORDER BY子句。

Examples

此命令将使用实例化视图定义中的查询替换名为order_summary的实例化视图的内容,并将其置于可扫描状态:

REFRESH MATERIALIZED VIEW order_summary;

此命令将释放与实例化视图annual_statistics_basis关联的存储,并使其处于不可扫描状态:

REFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;

Compatibility

REFRESH MATERIALIZED VIEW是 PostgreSQL 扩展。

See Also

创建材料视图, 更改了材料视图, 拖放材料视图