独立性レベルは、あるトランザクションの操作が、同時に処理されている別のトランザクションの操作からどの程度参照できるかを定義します。Ultra Light では、オートコミット・モードでの接続には、デフォルトの独立性レベルであるコミットされた呼び出しが使用されます。.NET の場合、パラメータを指定しないで ULConnection.BeginTransaction を呼び出すことによって作成された新しいトランザクションでは、ReadCommitted がデフォルトの独立性レベルになります。Ultra Light のデフォルトの独立性レベルは、データの一貫性を維持しながら最高のパフォーマンスを提供します。
独立性レベルが ReadCommitted の場合は、次のようになります。
ダーティ・リードは発生しない。
読み込みロックは適用されない。
コミットされていない削除が参照できる。
繰り返し不可能読み出しと幻ローが許可される。
トランザクション中にデータが変更されないという保証はない。
独立性レベルが ReadUncommitted の場合は、次のようになります。
ダーティ・リードが許可される。
読み込みロックは適用されない。
繰り返し不可能読み出しと幻ローが許可される。
同時トランザクションがローを変更しないこと、またはローに対しての変更がロールバックされないことは保証されない。
独立性レベルを ReadCommitted から ReadUncommitted に変更することができます。Ultra Light C++ の場合、独立性レベルを変更するには SetDatabaseOption メソッドを使用します。Ultra Light.NET 2.0 の場合、独立性レベルが ReadUncommitted のトランザクションを作成するには ULConnection.BeginTransaction を呼び出します。
.NET の場合、トランザクションがアクティブになっているときに SetDatabaseOption を実行することはおすすめしません。もし実行すると、接続の独立性レベルは変更されますが、ULTransaction.IsolationLevel は更新されません。
トランザクションが進行中のときには、独立性の変更に SetDatabaseOption は使用しないでください。予期しないエラーが発生する可能性があります。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |