Следующий оператор SQL иногда генерирует взаимоблокировки на моем сервере mssqlserver 2000
delete from tb_intervaloServico
where idFeriado in (
select ints.idIntervalo
from tb_periodicidadeServico ps, tb_intervaloServico ints
where ints.idPeriodicidadeServico=ps.idPeriodicidadeServico
and idservicoContrato='7f20b4af-9076-48f9-a861-8b78273eadc3'
and fromFixa=0)
По какой-то причине удаление получает статус блокировки и не завершается (?) Единственный другой процесс, который я нахожу заблокированным этим, - это план обслуживания, который запускается в выходные дни для воссоздания индексов, поэтому Идея, что может быть причиной проблемы.
Это блокировки, генерируемые удалением ...
Object Lock Type Mode Status Owner
tb_intervaloServico TAB IX GRANT Xact
tb_periodicidadeServico TAB IS GRANT Xact
У кого-нибудь есть указания, как добраться до корня проблемы? У меня есть подозрение, что таблица tb_intervaloServico является корнем блокировки, потому что она вызывается при удалении и выборе, но я не могу воспроизвести поведение.