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