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_dependent_views システム・プロシージャを使用して行います。このプロシージャは ISYSDEPENDENCY システム・テーブルを検査して、従属ビューが存在する場合はそのリストを返します。

マテリアライズド・ビューを無効にすると、データとインデックスは削除されます。ビューが即時ビューの場合は、手動ビューに変わります。そのため、再度有効にする場合は、リフレッシュしてインデックスを再構築し、必要に応じてもう一度即時ビューに変更する必要があります。

パーミッションは無効化されたオブジェクトに対して付与できます。無効化されたオブジェクトに対するパーミッションはデータベースに保存され、オブジェクトが有効になると使用できるようになります。

♦  マテリアライズド・ビューを削除するには、次の手順に従います (Sybase Central の場合)。
  1. DBA 権限のあるユーザとして、またはマテリアライズド・ビューの所有者として、データベースに接続します。

  2. 左ウィンドウ枠で、[ビュー] をダブルクリックします。

  3. マテリアライズド・ビューを右クリックして、[無効にする] を選択します。

♦  マテリアライズド・ビューを無効にするには、次の手順に従います (SQL の場合)。
  1. DBA 権限のあるユーザとして、またはマテリアライズド・ビューの所有者として、データベースに接続します。

  2. ALTER MATERIALIZED VIEW ... DISABLE 文を実行します。

次の例は、マテリアライズド・ビュー EmployeeConfid55 を作成し、初期化して、無効化します。無効化されると、マテリアライズド・ビューのデータは削除されますが、マテリアライズド・ビューの定義はデータベース内に残ります。データベース・サーバはマテリアライズド・ビューを使用できなくなり、従属ビューが存在する場合はそのビューも無効になります。

CREATE MATERIALIZED VIEW EmployeeConfid55 AS
   SELECT EmployeeID, Employees.DepartmentID, SocialSecurityNumber, Salary, ManagerID,
      Departments.DepartmentName, Departments.DepartmentHeadID
   FROM Employees, Departments
   WHERE Employees.DepartmentID=Departments.DepartmentID;
REFRESH MATERIALIZED VIEW EmployeeConfid55;
ALTER MATERIALIZED VIEW EmployeeConfid55 DISABLE;
♦  マテリアライズド・ビューを有効にするには、次の手順に従います (Sybase Central の場合)。
  1. DBA 権限のあるユーザとして、またはマテリアライズド・ビューの所有者として、データベースに接続します。

  2. 左ウィンドウ枠で、[ビュー] をダブルクリックします。

  3. マテリアライズド・ビューを右クリックして、[再コンパイルして有効にする] を選択します。

  4. (省略可) ビューを右クリックして [データの再表示] を選択することで、ビューを初期化して、データを設定します。

♦  マテリアライズド・ビューを有効にするには、次の手順に従います (SQL の場合)。
  1. DBA 権限のあるユーザとして、またはマテリアライズド・ビューの所有者として、データベースに接続します。

  2. ALTER MATERIALIZED VIEW ... ENABLE 文を実行します。

  3. (省略可) REFRESH MATERIALIZED VIEW を実行して、ビューを初期化し、データを設定します。

次の 2 つの文はそれぞれ、マテリアライズド・ビュー EmployeeConfid55 をもう一度有効にし、データを設定します。

ALTER MATERIALIZED VIEW EmployeeConfid55 ENABLE;
REFRESH MATERIALIZED VIEW EmployeeConfid55;
警告

この例を実行し終わったら、作成したマテリアライズド・ビューを削除してください。そうしないと、他の例を試すときに、基本となるテーブル Employees および Departments に対するスキーマ変更ができなくなります。有効化されている従属マテリアライズド・ビューを持つテーブルのスキーマは変更できません。マテリアライズド・ビューの削除を参照してください。

参照