0

DB 内の一連の列を参照し、これらの列を更新する必要があります。この一連の列は複数の並列トランザクションで共通/共有されるため、データの整合性と一貫性を損なうことなく、どのように優れたパフォーマンスを達成できますか? より明確にするために、私は長いトランザクションを持っています。そこでは、いくつかの前処理を行い、特定の値を計算します。次に、この値を制限と比較します。制限は、トランザクションをさらに進める場合に更新する必要がある common/shared 列です。アプリケーションには複数のユーザーがいて、同様の操作を実行しようとし、同じ「制限」と比較してさらに先に進む必要があります。

4

1 に答える 1

2

私の理解が正しければ、制限は一種のセマフォのように機能します。セマフォへのアクセスは、通常のトランザクションの一部であってはなりません。すぐに限度額を引き上げたいと考えており、失敗した場合はトランザクションを中止したいと考えています。

これを達成する方法は、サブトランザクションとして制限の増加を実行することです。トランザクション境界を使用している場合は、TransactionAttributeType.html#REQUIRES_NEWを使用できます。

より詳細な回答が必要な場合は、質問をある程度明確にしてください。

于 2013-03-16T11:10:29.513 に答える