

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# マテリアライズドビューの更新
<a name="refreshing-materialized-views"></a>

マテリアライズドビューにはクエリ結果のスナップショットが含まれます。Amazon Redshift を定期的に更新するように設定しない限り、マテリアライズドビューは定期的に更新されません。`REFRESH MATERIALIZED VIEW` ステートメントを使用して、マテリアライズドビューのデータを随時手動で更新できます。このコマンドはベーステーブルで行われた変更を特定し、その変更をマテリアライズドビューに適用します。

マテリアライズドビューを更新する方法は、手動更新と自動更新 ([自動リフレッシュ](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-refresh.html#materialized-view-auto-refresh)) の 2 種類があります。次のクエリ例は、マテリアライズドビューを手動で更新する方法を示しています。

```
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\$1MV\$1REFRESH\$1STATUS](https://docs.aws.amazon.com/redshift/latest/dg/r_SVL_MV_REFRESH_STATUS.html) ビューで確認できます。このビューには、ユーザーが開始したクエリまたは自動更新されたクエリが記録されます。