マテリアライズド・ビューを作成すると、再表示タイプは手動になります。ただし、即時タイプに変更できます。手動から即時に変更するには、ビューが未初期化状態である (データを含まない) 必要があります。ビューが作成された直後でまだリフレッシュされていない場合は、未初期化状態になっています。ビューにデータがある場合は、そのデータをトランケートする必要があります。また、ビューにはユニーク・インデックスも必要で、即時ビューに必要な制限に従う必要があります。即時ビューの追加の制限を参照してください。
即時ビューは、再表示タイプを変更するだけで、いつでも手動に変換できます。
次の手順では、手動ビューを即時ビューに変更する方法について説明します。これらの手順のいずれかを実行する前に、手動ビューにユニーク・インデックスがあり、未初期化状態であることを確認してください。そして、必要に応じて sa_materialized_view_can_be_immediate システム・プロシージャを使用して、再表示タイプを即時にするための条件を確認します。sa_materialized_view_can_be_immediate システム・プロシージャを参照してください。
DBA 権限のあるユーザとして、またはそのビューとビューが参照するすべてのテーブルの所有者として、データベースに接続します。
左ウィンドウ枠で、[ビュー] をダブルクリックします。
マテリアライズド・ビューを右クリックして、[プロパティ] を選択します。
[再表示タイプ] フィールドで、[即時] を選択します。
[OK] をクリックします。
DBA 権限のあるユーザとして、またはそのビューとビューが参照するすべてのテーブルの所有者として、データベースに接続します。
再表示タイプを即時に変更するには、ALTER MATERIALIZED VIEW ... IMMEDIATE REFRESH 文を実行します。
次の手順では、即時ビューを手動ビューに変更する方法について説明します。
ビューの所有者として、または DBA 権限のあるユーザとして、データベースに接続します。
左ウィンドウ枠で、[ビュー] をダブルクリックします。
マテリアライズド・ビューを右クリックして、[プロパティ] を選択します。
[再表示タイプ] フィールドで、[手動] を選択します。
[OK] をクリックします。
ビューの所有者として、または DBA 権限のあるユーザとして、データベースに接続します。
再表示タイプを手動に変更するには、ALTER MATERIALIZED VIEW ... MANUAL REFRESH 文を実行します。
次の例は、マテリアライズド・ビューを作成し、初期化します。即時ビューにはユニーク・インデックスが必要なため、次にユニーク・インデックスを追加します。再表示タイプを変更する際にビューにデータがあってはいけないため、ビューはトランケートされます。最後に、再表示タイプが変更されます。
CREATE MATERIALIZED VIEW EmployeeConfid44 AS SELECT EmployeeID, Employees.DepartmentID, SocialSecurityNumber, Salary, ManagerID, Departments.DepartmentName, Departments.DepartmentHeadID FROM Employees, Departments WHERE Employees.DepartmentID=Departments.DepartmentID; REFRESH MATERIALIZED VIEW EmployeeConfid44; CREATE UNIQUE INDEX EmployeeIDIdx ON EmployeeConfid44 ( EmployeeID ); TRUNCATE MATERIALIZED VIEW EmployeeConfid44; ALTER MATERIALIZED VIEW EmployeeConfid44 IMMEDIATE REFRESH; |
次の文は、再表示タイプを手動に戻します。
ALTER MATERIALIZED VIEW EmployeeConfid44 MANUAL REFRESH; |
この例を実行し終わったら、作成したマテリアライズド・ビューを削除してください。そうしないと、他の例を試すときに、基本となるテーブル Employees および Departments に対するスキーマ変更ができなくなります。有効化されている従属マテリアライズド・ビューを持つテーブルのスキーマは変更できません。マテリアライズド・ビューの削除を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |