為什麼我的具體化檢視未針對 Amazon Redshift 叢集重新整理?

1 分的閱讀內容
0

我的具體化檢視未針對 Amazon Redshift 叢集重新整理。為什麼會發生這種情況,以及如何讓我的具體化檢視重新整理?

簡短描述

下列情況可能會導致 Amazon Redshift 中的具體化檢視無法重新整理,或需要很長時間才能完成:

  • REFRESH MATERIALIZED VIEW 執行失敗並顯示許可錯誤
  • 您會看到錯誤:無效的操作:無法重新整理具體化檢視 mv_name,因為基礎資料表由於同時進行真空/截斷而實際變更。請再試一次;
  • REFRESH MATERIALIZED VIEW 無法重新整理
  • REFRESH MATERIALIZED VIEW 已提交並執行很長時間
  • 由於存在作用中工作負載,重新整理活動不會顯示在自動重新整理上

解決方案

REFRESH MATERIALIZED VIEW 執行失敗並顯示許可錯誤

您必須是擁有者,才能對具體化檢視執行 REFRESH MATERIALIZED VIEW 操作。此外,您必須具備下列權限:

  • 針對底層基礎資料表上的 SELECT 權限
  • 針對結構描述的 USAGE 權限

如果具體化檢視經過完整重新運算而非累加式重新整理,您還必須擁有針對結構描述的 CREATE 權限。若要定義權限,請參閱 GRANT。如需詳細資訊,請參閱自動重新整理具體化檢視

無效的操作:無法重新整理具體化檢視 mv_name,因為基礎資料表由於同時進行真空/截斷而實際變更。請再試一次;

當提交 REFRESH MATERIALIZED VIEWVACUUM 以在基礎資料表上並行執行時,就會發生錯誤。操作完成後,即可重新提交 REFRESH MATERIALIZED VIEW。

REFRESH MATERIALIZED VIEW 無法重新整理

無法重新整理的具體化檢視可能是由下列操作所造成:

  • 重新命名或刪除欄。
  • 變更欄的類型。
  • 變更基礎資料表或結構描述的名稱

**注意:**您可以查詢此情況下的具體化檢視,但無法對其重新整理。即使具體化檢視中未使用該欄,上述條件約束也會套用。

若要瞭解具體化檢視中的資料是否過時,以及具體化檢視狀態資訊,請使用 STV_MV_INFO。若要檢視具體化檢視的重新整理活動,請使用 SVL_MV_REFRESH_STATUS。在此無法重新整理的具體化檢視狀態中,您必須刪除並重新建立具體化檢視,讓具體化檢視保持在最新狀態。

以下是您可能會看到的錯誤訊息範例:

```Detail: Procedure <mv_sp_*****_2_1>  does not exist```
```column <column name> does not exist```
```DETAIL:  schema "<schema name>" does not exist ;```
```ERROR: Materialized view <mv namme> is unrefreshable as a base table was renamed.```

REFRESH MATERIALIZED VIEW 已提交並執行很長時間

REFRESH MATERIALIZED VIEW 做為在叢集上執行的一般查詢發揮作用。若要確認查詢是否正在執行,請執行下列動作:

  • 若要檢視在資料上執行的作用中查詢,請使用 STV_INFLIGHT
  • 若要透過工作負載管理 (WLM) 記錄查詢追蹤的目前狀態,請使用 STV_WLM_STATE
  • 若要瞭解在運算節點上主動執行的查詢和查詢步驟的資訊,請使用 STV_EXEC_STATE

REFRESH MATERIALIZED VIEW 操作效能受下列因素影響:

  • 資料表鎖定:若要檢視資料庫中資料表的任何目前更新,請參閱 STV_LOCKS
  • 分配的資源:若要檢視 WLM 的服務類別組態,請參閱 STV_WLM_SERVICE_CLASS_CONFIG
  • 重新整理類型:累加式或完全重新整理。若要檢視具體化檢視進行的重新整理類型,請參閱 SVL_MV_REGISH_STATUS

如果您遇到 REFRESH MATERIALIZED VIEW 效能變慢,請參閱改善查詢效能

由於存在作用中工作負載,重新整理活動不會顯示在自動重新整理上

Amazon Redshift 會優先處理您的工作負載,而不是自動重新整理。此優先順序可能會停止自動重新整理以保留工作負載的效能,並可能會延遲某些具體化檢視的重新整理。在某些情況下,您的具體化檢視可能需要更具決定性的重新整理行為。若要建立更具決定性的重新整理行為,請使用下列指令:

  • REFRESH MATERIALIZED VIEW 所述手動重新整理
  • 使用 Amazon Redshift 排程器 API 操作或主控台進行排程重新整理

如需詳細資訊,請參閱自動重新整理具體化檢視


AWS 官方
AWS 官方已更新 1 年前