他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

REFRESH MATERIALIZED VIEW

REFRESH MATERIALIZED VIEW — マテリアライズドビューの内容を置換する

概要

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

説明

REFRESH MATERIALIZED VIEWはマテリアライズドビューの内容を完全に置き換えます。 このコマンドを実行するには、マテリアライズドビューの所有者でなければなりません。 古い内容は破棄されます。 WITH DATAが指定されている場合(またはデフォルトでは)、新しいデータを提供するために裏付け問い合わせが実行され、マテリアライズドビューはスキャン可能状態になります。 WITH NO DATAが指定されている場合、新しいデータは生成されず、マテリアライズドビューはスキャン不可状態になります。

CONCURRENTLYWITH NO DATAを同時に指定することはできません。

パラメータ

CONCURRENTLY

そのマテリアライズドビューに対して同時に実行されるSELECTをロックすることなく、マテリアライズドビューをREFRESHします。 このオプションを使わない場合、多くの行に影響を与えるREFRESHはリソースをあまり使わず、早く終わる代わりに、そのマテリアライズドビューから読み込もうとしている他の接続をブロックするかもしれません。 影響を与える行が少ない場合は、このオプションは速いかもしれません。

このオプションは、マテリアライズドビューに、列名だけを使い、すべての行を含むUNIQUEインデックスが少なくとも1つある場合にのみ使えます。 つまり、それは式のインデックスであったり、WHERE句を含んでいてはいけません。

このオプションは、マテリアライズドビューがスキャン不可状態のときは使うことができません。

このオプションを使う場合でも、1つのマテリアライズドビューに対して同時に実行できるREFRESHは一つだけです。

name

更新するマテリアライズドビューの名前(スキーマ修飾可)です。

注釈

マテリアライズドビューを定義する問い合わせにORDER BY句があれば、マテリアライズドビューの元の内容はその順序で並べられます。ですが、REFRESH MATERIALIZED VIEWは、その順序が保たれることを保証しません。

以下のコマンドは、マテリアライズドビューの定義からの問い合わせを用いてorder_summaryというマテリアライズドビューの内容を置き換え、スキャン可能状態とします。

REFRESH MATERIALIZED VIEW order_summary;

以下のコマンドはマテリアライズドビューannual_statistics_basisに関連する格納領域を解放し、スキャン不可状態とします。

REFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;

互換性

REFRESH MATERIALIZED VIEWPostgreSQLの拡張です。

関連項目

CREATE MATERIALIZED VIEW, ALTER MATERIALIZED VIEW, DROP MATERIALIZED VIEW