REFRESH MATERIALIZED VIEW — 取代實體化檢視的內容
REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name
[ WITH [ NO ] DATA ]
REFRESH MATERIALIZED VIEW
會完全取代實體化檢視的內容。要執行此指令,您必須擁有實體化檢視上的 MAINTAIN
權限。舊的內容會被捨棄。如果指定了 WITH DATA
(或預設),則會執行後端查詢以提供新的資料,並且實體化檢視會保持在可掃描的狀態。如果指定了 WITH NO DATA
,則不會產生新的資料,並且實體化檢視會保持在無法掃描的狀態。
不得同時指定 CONCURRENTLY
和 WITH 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 VIEW
是 PostgreSQL 擴充功能。
如果您在文件中看到任何不正確、與您特定功能的經驗不符或需要進一步說明的地方,請使用 此表單來回報文件問題。