ヘッダーをスキップ
Oracle TimesTen In-Memory Databaseオペレーション・ガイド
リリース7.0
E05167-03
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

並行性制御

トランザクションに独立性があることで、アクティブな各トランザクションは、他のアクティブなトランザクションがシステム内に存在していない場合と同様に動作できます。TimesTenでは、トランザクションの分離レベルとしてANSI SerializableおよびANSI Read_Committedの2つがサポートされています。

トランザクションの分離レベル

TimesTenのすべてのデータ・アクセスでは、ロックまたはコピーを使用して独立性が確保されます。アプリケーションでトランザクションの分離レベルを設定するには、SQL_TXN_ISOLATIONフラグとともにSQLSetConnectOption ODBC関数を使用するか、またはIsolation接続属性を設定します。

マテリアライズド・ビューを常に一貫性がある状態に保つために、すべてのビュー・メンテナンス処理はシリアライズ可能分離レベルで効果的に実行されます。これは、トランザクションがコミット読取り分離レベルの場合も同様です。これは、トランザクションで、ビュー・メンテナンス時に読み取られるすべてのデータ項目に読取りロックを設定することを意味します。ただし、これらのロックは、トランザクションが終了するまで保持されるのではなく、ビュー・メンテナンス処理をトリガーしたINSERT文、UPDATE文またはCREATE VIEW文が終了すると解除されます。

ロックの粒度

TimesTenでは、行レベル・ロックおよびデータ・ストア・レベル・ロックがサポートされています。

異なるロック・レベルの併用

接続ごとに異なるロック・レベルを使用できます。ただし、データ・ストア・レベル・ロックを使用している接続が1つでも存在すると、並行性が低下します。パフォーマンスについては、『Oracle TimesTen In-Memory Database Java開発者およびリファレンス・ガイド』の最適なロック方法の選択に関する説明を参照してください。TimesTen Cアプリケーションのチューニングについては、『Oracle TimesTen In-Memory Database C開発者およびリファレンス・ガイド』の最適なロック方法の選択に関する説明を参照してください。