マテリアライズドビューには、手動と即時の 2 種類があります。これらはマテリアライズドビューの「再表示タイプ」を表しています。
手動ビュー 手動のマテリアライズドビューまたは「手動ビュー」とは、再表示タイプが MANUAL REFRESH と定義されているマテリアライズドビューです。手動ビューは、たとえば REFRESH MATERIALIZED VIEW 文または sa_refresh_materialized_views システムプロシージャーを使用して再表示を明示的に要求するまでリフレッシュされないため、手動ビューのデータが古くなる場合があります。デフォルトでは、マテリアライズドビューを作成すると手動ビューになります。
基本となるいずれかのテーブルが変更されると、マテリアライズドビューのデータが変更による影響を受けなくても、手動ビューは古くなったと見なされます。a_materialized_view_info システムプロシージャーが返す DataStatus の値を調べて、手動ビューが古くなったかどうかを判断することができます。S が返されると、手動ビューが古いことを表します。
即時ビュー 即時のマテリアライズドビューまたは「即時ビュー」とは、再表示タイプが IMMEDIATE REFRESH と定義されているマテリアライズドビューです。即時ビューのデータは、基本となるテーブルへの変更がビューのデータに影響を与える場合に、自動的にリフレッシュされます。基本となるテーブルへの変更がビューのデータに影響しない場合、ビューはリフレッシュされません。
また、即時ビューがリフレッシュされるときは、古いローのみを変更する必要があります。この点が手動ビューのリフレッシュとは異なります。手動ビューのリフレッシュでは、リフレッシュするためにすべてのデータが削除され、再作成されます。
手動ビューを即時ビューに、または即時ビューを手動ビューに変更できます。ただし、手動ビューから即時ビューへの変更処理では、少し多くの手順があります。
マテリアライズドビューの再表示タイプを変更すると、特に手動ビューから即時ビューに変更する場合は、ビューのステータスとプロパティに影響を与える場合があります。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |