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 の使用法 » データベースの作成 » トランザクションと独立性レベルの使用 » 独立性レベルと一貫性

 

独立性レベルの設定

データベースへの各接続は独自の独立性レベルを持ちます。さらに、データベースはユーザやグループごとにデフォルトの独立性レベルを保存できます。isolation_level database データベース・オプションの PUBLIC 設定によって、単一のデフォルトの独立性レベルをデータベース・グループ全体に設定できます。

テーブル・ヒントを使用して独立性レベルを設定することもできますが、これは高度な機能であるため必要な場合にのみ使用してください。詳細については、FROM 句の WITH テーブル・ヒントに関する項を参照してください。

接続の独立性や、ユーザ ID に設定されたデフォルトのレベルは、SET OPTION コマンドを使用して変更できます。パーミッションを持っている場合は、他のユーザやグループの独立性レベルも変更できます。

スナップショット・アイソレーションを使用する場合は、先にデータベースでスナップショット・アイソレーションを有効にする必要があります。

スナップショット・アイソレーションのレベルの有効化と設定の詳細については、スナップショット・アイソレーションの有効化を参照してください。

♦  現在のユーザに独立性レベルを設定するには、次の手順に従います。
♦  ユーザまたはグループに独立性レベルを設定するには、次の手順に従います。
  1. DBA 権限のあるユーザとしてデータベースに接続します。

  2. isolation_level の前にグループ名とピリオドを付加し、SET OPTION 文を実行します。たとえば次のコマンドは、グループ PUBLIC のデフォルトの独立性レベルを 3 に設定します。

    SET OPTION PUBLIC.isolation_level = 3;
♦  現在の接続の独立性レベルを設定するには、次の手順に従います。
デフォルトの独立性レベル

データベースに接続すると、データベース・サーバは次のように最初の独立性レベルを決定します。

  1. デフォルトの独立性レベルは、ユーザやグループごとに設定できます。レベルがユーザ ID のデータベースに保存されている場合、データベース・サーバはそのレベルを使用します。

  2. レベルが保存されていない場合、データベース・サーバはレベルが見つかるまでユーザが属しているグループをチェックします。すべてのユーザは特殊グループ PUBLIC のメンバです。最初に他の設定が見つからない場合、SQL Anywhere はそのグループに割り当てられているレベルを使用します。

ユーザとグループの詳細については、ユーザ ID、権限、パーミッションの管理を参照してください。

SET OPTION 文の構文の詳細については、SET OPTION 文を参照してください。

たとえば、1 つ以上のテーブルがシリアル・アクセスを必要とする場合、トランザクション中に独立性レベルを変更できます。トランザクション内の独立性レベルの変更については、トランザクション内の独立性レベルの変更を参照してください。