11

ライブ CRM システムにクエリを実行する必要がある DW プロジェクトに取り組んでいます。標準分離レベルは、パフォーマンスに悪影響を及ぼします。ロックなし/トランザクション分離レベルのコミットされていない読み取りを使用したくなります。選択した行のうち、ダーティ リードによって識別される行の数を知りたいです。

4

3 に答える 3

8

多分あなたはこれを行うことができます:

SELECT * FROM T WITH (SNAPSHOT)
EXCEPT
SELECT * FROM T WITH (READCOMMITTED, READPAST)

しかし、これは本質的に際どいものです。

于 2014-03-07T09:02:33.873 に答える
4

標準の分離レベルはパフォーマンスに悪影響を及ぼします

では、それについて触れてみませんか?ダーティ リードは inconsistent readであることを知っているので、使用しないでください。明白な答えは、スナップショット分離を使用することです。SQL Server: A Guide の「スナップショットの実装」または「 Read Committed Snapshot Isolation」を参照してください。

しかし、問題は実際にはもっと深刻です。ブロッキングが発生するのはなぜですか? 読み取りが書き込みによってブロックされるのはなぜですか? DW ワークロードは、運用上のトランザクション データで解放されるべきではありません。これが、ETL および OLAP 製品を用​​意している理由です。キューブ、列ストア、powerpivot など、信じられないほど高速なDW と分析を可能にするすべての利点を考慮してください。分析的なエンド ツー エンドのスキャンでビジネス運用データベースに負担をかけないでください。問題が発生するだけです。

于 2014-03-07T09:57:45.617 に答える