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_refresh_materialized_views システム・プロシージャを使用してビューをリフレッシュすることもできます。sa_refresh_materialized_views システム・プロシージャを参照してください。

materialized_view_optimization データベース・オプションを使用して、古さのしきい値を設定できます。オプティマイザは、クエリの処理時にこのしきい値を超えたマテリアライズド・ビューを使用しません。オプティマイザでのマテリアライズド・ビューに対する古さのしきい値の設定を参照してください。

REFRESH MATERIALIZED VIEW 文を使用する場合、WITH ISOLATION LEVEL 句を使用して接続の独立性レベルを上書きできます。マテリアライズド・ビューをリフレッシュするときの同時実行性を制御する方法については、REFRESH MATERIALIZED VIEW 文 の WITH 句を参照してください。

マテリアライズド・ビューが含まれるデータベースのアップグレード

データベース・サーバをアップグレードした後、またはアップグレード後のデータベース・サーバで使用できるようにデータベースを再構築またはアップグレードした後は、マテリアライズド・ビューをリフレッシュすることをおすすめします。

♦  手動ビューをリフレッシュするには、次の手順に従います (Sybase Central の場合)。
  1. DBA 権限のあるユーザとして、またはマテリアライズド・ビューの INSERT パーミッションを持つユーザとして、データベースに接続します。基本となるテーブルに対する SELECT パーミッションも必要です。

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

  3. マテリアライズド・ビューを右クリックして、[データの再表示] を選択します。

  4. 独立性レベルを選択して、[OK]をクリックします。

♦  手動ビューをリフレッシュするには、次の手順に従います (SQL の場合)。
  1. DBA 権限のあるユーザとして、またはマテリアライズド・ビューの INSERT パーミッションを持つユーザとして、データベースに接続します。基本となるテーブルに対する SELECT パーミッションも必要です。

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

次の文は、マテリアライズド・ビュー EmployeeConfid33 を作成し、リフレッシュします。

CREATE MATERIALIZED VIEW EmployeeConfid33 AS
   SELECT EmployeeID, Employees.DepartmentID, SocialSecurityNumber, Salary, ManagerID,
      Departments.DepartmentName, Departments.DepartmentHeadID
   FROM Employees, Departments
   WHERE Employees.DepartmentID=Departments.DepartmentID;
REFRESH MATERIALIZED VIEW EmployeeConfid33;
警告

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

参照