スナップショット分離機能は、大量のサイトでリーダーがライターをロックアウトする問題を解決するのに役立ちます。これは、SqlServer で tempdb を使用して行をバージョン管理することによって行われます。
私の質問は、このスナップショット分離機能を正しく実装することです.SqlServerで次を実行するだけの問題ですか.
ALTER DATABASE MyDatabase
SET ALLOW_SNAPSHOT_ISOLATION ON
ALTER DATABASE MyDatabase
SET READ_COMMITTED_SNAPSHOT ON
次のように、TransactionScope を含むコードも作成する必要がありますか?
using (new TransactionScope(TransactionScopeOption.Required,
new TransactionOptions { IsolationLevel = IsolationLevel.SnapShot}))
最後に、Brent は、この記事の同時実行の隠れたコストのセクションで懸念を指摘しました。この記事では、tempdb で行をバージョン管理する際に、tempdb はスペースが不足する可能性があり、バージョン管理された行を検索する必要があるため、パフォーマンスの問題が発生する可能性があると述べています。私の質問は、このサイトがスナップショット分離を使用していることは知っていますが、他の誰かが大規模なサイトでこの機能を使用していることを知っています。パフォーマンスについてどう思いますか?
ありがとう、レイ。