支援的版本:目前 (17) / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3

REFRESH MATERIALIZED VIEW

REFRESH MATERIALIZED VIEW — 取代實體化檢視的內容

概要

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

描述

REFRESH MATERIALIZED VIEW 會完全取代實體化檢視的內容。要執行此指令,您必須擁有實體化檢視上的 MAINTAIN 權限。舊的內容會被捨棄。如果指定了 WITH DATA(或預設),則會執行後端查詢以提供新的資料,並且實體化檢視會保持在可掃描的狀態。如果指定了 WITH NO DATA,則不會產生新的資料,並且實體化檢視會保持在無法掃描的狀態。

不得同時指定 CONCURRENTLYWITH NO DATA

參數

CONCURRENTLY

重新整理實體化檢視,而不會鎖定對該實體化檢視的並行選取。如果沒有這個選項,影響大量列的重新整理往往會使用較少的資源並且更快完成,但可能會封鎖嘗試從實體化檢視讀取的其他連線。在影響少量列的情況下,此選項可能會更快。

只有在實體化檢視上至少有一個 UNIQUE 索引僅使用欄位名稱並包含所有列時,才允許使用此選項;也就是說,它不得是運算式索引或包含 WHERE 子句。

只有在已填入實體化檢視時,才能使用此選項。

即使使用此選項,一次也只能對任何一個實體化檢視執行一個 REFRESH

name

要重新整理的實體化檢視的名稱(選擇性地以綱要限定)。

注意事項

如果實體化檢視的定義查詢中有 ORDER BY 子句,則實體化檢視的原始內容將以這種方式排序;但 REFRESH MATERIALIZED VIEW 不保證保留該排序。

REFRESH MATERIALIZED VIEW 正在執行時,search_path 會暫時變更為 pg_catalog, pg_temp

範例

此指令將使用實體化檢視定義中的查詢取代名為 order_summary 的實體化檢視的內容,並使其保持在可掃描的狀態。

REFRESH MATERIALIZED VIEW order_summary;

此指令將釋放與實體化檢視 annual_statistics_basis 關聯的儲存空間,並使其保持在無法掃描的狀態。

REFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;

相容性

REFRESH MATERIALIZED VIEWPostgreSQL 擴充功能。

提交更正

如果您在文件中看到任何不正確、與您特定功能的經驗不符或需要進一步說明的地方,請使用 此表單來回報文件問題。