回答:
共有ロックを確認するにはどうすればよいですか?外部キーが原因ですか?
はい。SQL Serverは、外部キー制約を検証する目的でテーブルにアクセスすると、読み取りコミット分離レベルのロック実装に戻ります。これは正確さのために必要であり、無効にすることはできません。
この動作は、データ変更ステートメントにのみ適用されます。共有ロックは、外部キー関連のデータをチェックするときにのみ使用されます。同じ実行プランの他のデータアクセスでは、引き続き行のバージョン管理を使用できます。
SQL Serverがこれを行わなかった場合RCSI
、整合性チェックで古い(バージョン管理された)データが使用されたため、データ変更ステートメントが外部キー制約に違反する可能性があります。
残念ながら、現在、実行プランのロック動作のこの変更を確認するためのサポートされている方法はありません。トレースフラグ8607がアクティブな場合、内部ロックのヒントを表示できます。