0

同時実行を可能な限り最小限に抑える必要がある場合、どの分離レベル (反復可能読み取り、シリアライズ可能、コミット済み読み取り、非コミット読み取り) が最適ですか?

4

2 に答える 2

1

Serializable は分離性が最大になるため、同時実行性が最小になります。

http://en.wikipedia.org/wiki/Isolation_(database_systems)

于 2009-06-15T18:57:29.007 に答える
0

パフォーマンスを向上させるために、ここで可能な限り同時実行性を最大化したいと本当に思っていると思います。残念ながら、分離モードを選択するだけではうまくいきません。これらの分離モードに関する本当の問題は、特定のアプリケーションでそれらを使用できるかということです。

それは実際にはアプリケーションの詳細に依存し、スタック オーバーフローでデバッグできるものではない可能性があります。

ただし、一般に、データが破損しないと仮定すると、同時実行が最も多いものから最も少ないものの順に、Oracle の分離レベルは次のようになります。

  1. コミットされていない読み取り
  2. コミットされた読み取り
  3. 繰り返し読み取り
  4. シリアライズ可能。

たとえば、PostgreSQL の場合は異なります。これは、読み取りが無料である別の同期モデル ( MVCC ) を使用しているためですが、書き込み時にロールバックのリスクが発生するためです。

この質問に対する本当の答えは、何日にもわたる学習資料を求めてリードを得るか、特定の状況に対処するために誰かを雇うことだと思います. 非常に技術的ではありますが、厳格なルールはありません。有用な推奨事項を作成するには、何が起こっているかの背後にある理論と特定の状況の両方を理解する必要があります。

于 2009-06-15T19:09:47.813 に答える