データベースへの各接続は独自の独立性レベルを持ちます。さらに、データベースはユーザやグループごとにデフォルトの独立性レベルを保存できます。isolation_level database データベース・オプションの PUBLIC 設定によって、単一のデフォルトの独立性レベルをデータベース・グループ全体に設定できます。
テーブル・ヒントを使用して独立性レベルを設定することもできますが、これは高度な機能であるため必要な場合にのみ使用してください。詳細については、FROM 句の WITH テーブル・ヒントに関する項を参照してください。
接続の独立性や、ユーザ ID に設定されたデフォルトのレベルは、SET OPTION コマンドを使用して変更できます。パーミッションを持っている場合は、他のユーザやグループの独立性レベルも変更できます。
スナップショット・アイソレーションを使用する場合は、先にデータベースでスナップショット・アイソレーションを有効にする必要があります。
スナップショット・アイソレーションのレベルの有効化と設定の詳細については、スナップショット・アイソレーションの有効化を参照してください。
SET OPTION 文を実行します。たとえば次の文は、現在のユーザに独立性レベル 3 を設定します。
SET OPTION isolation_level = 3; |
DBA 権限のあるユーザとしてデータベースに接続します。
isolation_level の前にグループ名とピリオドを付加し、SET OPTION 文を実行します。たとえば次のコマンドは、グループ PUBLIC のデフォルトの独立性レベルを 3 に設定します。
SET OPTION PUBLIC.isolation_level = 3; |
TEMPORARY キーワードを使用して SET OPTION 文を実行します。たとえば次の文は、現在の接続に対して独立性レベル 3 を設定します。
SET TEMPORARY OPTION isolation_level = 3; |
データベースに接続すると、データベース・サーバは次のように最初の独立性レベルを決定します。
デフォルトの独立性レベルは、ユーザやグループごとに設定できます。レベルがユーザ ID のデータベースに保存されている場合、データベース・サーバはそのレベルを使用します。
レベルが保存されていない場合、データベース・サーバはレベルが見つかるまでユーザが属しているグループをチェックします。すべてのユーザは特殊グループ PUBLIC のメンバです。最初に他の設定が見つからない場合、SQL Anywhere はそのグループに割り当てられているレベルを使用します。
ユーザとグループの詳細については、ユーザ ID、権限、パーミッションの管理を参照してください。
SET OPTION 文の構文の詳細については、SET OPTION 文を参照してください。
たとえば、1 つ以上のテーブルがシリアル・アクセスを必要とする場合、トランザクション中に独立性レベルを変更できます。トランザクション内の独立性レベルの変更については、トランザクション内の独立性レベルの変更を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |