本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
重新整理具體化視觀表
具體化視觀表包含查詢結果的快照。除非您將 Amazon Redshift 設定為定期進行更新,否則具體化視觀表不會定期更新。若要手動重新整理並更新具體化視觀表中的資料,您可以隨時使用 REFRESH MATERIALIZED VIEW 陳述式。此命令會識別在基本資料表中發生的變更,然後將這些變更套用至具體化視觀表。
重新整理具體化視觀表有兩種方式:手動重新整理和自動重新整理 (稱為自動更新)。下列查詢範例顯示如何手動重新整理具體化視觀表:
REFRESH MATERIALIZED VIEW mv_total_orders;
若要自動重新整理具體化視觀表,請將 AUTO REFRESH YES 子句新增至 CREATE MATERIALIZED VIEW 陳述式,如下列範例示範:
CREATE MATERIALIZED VIEW mv_total_orders AUTO REFRESH YES -- Add this clause to auto refresh the MV AS SELECT c.cust_id, c.first_name, sum(o.amount) as total_amount FROM orders o JOIN customer c ON c.cust_id = o.customer_id GROUP BY c.cust_id, c.first_name;
Amazon Redshift 會在基本資料表變更後盡快自動重新整理具體化視觀表。為了在處理重新整理時最大限度地減少叢集中的作用中工作負載的影響,Amazon Redshift 會考慮下列因素:
目前系統負載
重新整理所需的資源
可用的叢集資源
使用具體化視觀表的頻率
Amazon Redshift 優先考慮您的工作負載而非自動重新整理,並且可以停止自動重新整理以保留使用者工作負載的效能。請記住,此方法可能會延遲重新整理部分具體化視觀表。對於重新整理狀態,您可以檢查 SVL_MV_REFRESH_STATUS 檢視。此檢視會記錄使用者啟動或自動重新整理的查詢。