Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データベースの作成 » データベース・オブジェクトの使用 » マテリアライズド・ビューの操作

 

マテリアライズド・ビューのステータスとプロパティ

マテリアライズド・ビューは、ステータスとプロパティの組み合わせによって特徴付けられます。マテリアライズド・ビューの「ステータス」は、データベース・サーバが使用するビューの利用可能性を反映しています。マテリアライズド・ビューの「プロパティ」は、ビュー内のデータのステータスを反映しています。

既存のマテリアライズド・ビューのステータスとプロパティを判断するのに一番良い方法は、sa_materialized_view_info システム・プロシージャを使用することです。sa_materialized_view_info システム・プロシージャを参照してください。

また、Sybase Central の [ビュー] フォルダを選択して個々のビュー詳細を調べるか、SYSTAB および SYSVIEW システム・ビューを問い合わせることにより、マテリアライズド・ビューの情報を表示できます。SYSTAB システム・ビューSYSVIEW システム・ビューを参照してください。

マテリアライズド・ビューのステータス

マテリアライズド・ビューには、次の 2 種類のステータスがあります。

  • 有効   マテリアライズド・ビューは、コンパイルが正常に実行され、データベース・サーバが使用できる場合に「有効」というステータスになります。有効にされたマテリアライズド・ビューにはデータがない場合もあります。たとえば、有効にされたマテリアライズド・ビューからデータをトランケートすると、有効に変わりますが、初期化されていません。マテリアライズド・ビューを初期化することはできますが、マテリアライズド・ビューの定義を満たす基本となるテーブルにデータがない場合は、空になります。これは、初期化されていないためにデータがないマテリアライズド・ビューと同じではありません。

  • 無効   マテリアライズド・ビューは、ALTER MATERIALIZED VIEW ... DISABLE 文を実行するなどして、明示的に無効にした場合だけ「無効」というステータスになります。マテリアライズド・ビューを無効にすると、そのビューのデータとインデックスは削除されます。また、即時ビューを無効にすると、手動ビューに変わります。

ビューが有効であるか、無効であるかを判断するには、ビューのステータス・プロパティを返す sa_materialized_view_info システム・プロシージャを使用します。sa_materialized_view_info システム・プロシージャを参照してください。

マテリアライズド・ビューの有効化と無効化については、マテリアライズド・ビューの有効化と無効化を参照してください。

マテリアライズド・ビューのプロパティ

マテリアライズド・ビューのプロパティは、ビューを使用するかどうかを評価するときにオプティマイザによって使用されます。次のリストでは、sa_materialized_view_info システム・プロシージャが返すマテリアライズド・ビューのプロパティについて説明します。

  • Status   Status プロパティには、ビューが有効であるか、無効であるかが示されます。

  • DataStatus   DataStatus プロパティは、ビュー内のデータのステータスを反映します。たとえば、ビューが初期化されているかどうか、ビューが古いかどうかなどを示します。マテリアライズド・ビューが最後にリフレッシュされてから基本となるテーブルのデータが変更されると、手動ビューは古くなります。即時ビューが古くなることはありません。

  • ViewLastRefreshed   ViewLastRefreshed プロパティは、ビューが最後にリフレッシュされた時刻を示します。

  • DateLastModified   DateLastModified プロパティは、ビューが古い場合に、基本となるテーブルのデータが最後に変更された時刻を示します。

  • AvailForOptimization   AvailForOptimization プロパティは、オプティマイザがビューを使用できるかどうかを反映します。

  • RefreshType   RefreshType プロパティは、ビューが手動ビューであるか、即時ビューであるかを示します。

各プロパティの可能な値のリストについては、sa_materialized_view_info システム・プロシージャを参照してください。

手動ビューを即時ビューに変換できるかどうかを示すプロパティはありませんが、sa_materialized_view_can_be_immediate システム・プロシージャを使用してこれを判断できます。sa_materialized_view_can_be_immediate システム・プロシージャを参照してください。

マテリアライズド・ビューの変更、リフレッシュ、トランケート実行時のステータスとプロパティの変更

マテリアライズド・ビューに変更、リフレッシュ、トランケートなどの操作を実行すると、ビューのステータスとプロパティに影響を与えます。次の図に、これらのタスクがマテリアライズド・ビューのステータスと一部のプロパティに与える影響を示します。

この図では、灰色の四角がマテリアライズド・ビューであり、即時ビューは IMMEDIATE という用語、手動ビューは MANUAL という用語で区別されています。灰色のボックスの間を接続する ALTER という用語は、ALTER MATERIALIZED VIEW の省略です。マテリアライズド・ビューのステータスを変更するために SQL 文が示されていますが、Sybase Central を使用してこれらのアクティビティを実行することもできます。

マテリアライズド・ビューのさまざまなステータスを示す図

図から分かる重要な概念は次のとおりです。

  • マテリアライズド・ビューを作成すると、そのビューは有効な手動ビューになり、未初期化状態である (データは含まれない)。

  • 未初期化状態のビューをリフレッシュすると、初期化された状態になる (データが入力される)。

  • 手動ビューから即時ビューに変更するにはいくつかの手順が必要である。また、即時ビューには追加の制限がある。手動ビューから即時ビューへの変更即時ビューの追加の制限を参照してください。

  • マテリアライズド・ビューを無効にすると、次のことが行われる。

    • データが削除される

    • ビューが未初期化状態に戻る

    • インデックスが削除される

    • 即時ビューが手動に戻る

参照