私は3つのテーブルを持っています:
- ImportBatch
- PatientChartImages
- PatientChartBatchMapping(このテーブルには、ImportBatchとPatientChartImagesの両方に対する外部キーがあります)
3つのテーブルからレコードを選択して定義されたインデックスなしのビューがあります。次のコマンドを使用して、PatientChartImagesテーブルを明示的にロックし、本番データベースのブロッキングシーンリオを生成しています
begin transaction
update PatientChartImages set imagesequence=imagesequence
--Commit transaction
上記のクエリはPatientChartImagesテーブルをロックします。また、次のクエリはタイムアウトします:
select * from ImportBatch where importbatchid=@importbatchid
ビューをドロップして同じプロセスに従うと、ImportBatchクエリがタイムアウトしません。誰かがこの行動を説明できますか?これは設計によるものですか、それとも私は何かおかしなことをしていますか?