L'instruction SQL suivante génère parfois des blocages dans mon mssqlserver 2000 serveurDeadlock dans suppression de sélection
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)
Pour une raison quelconque, la suppression obtient un statut de blocage et ne se termine pas (?) Le seul autre processus Ce que je trouve bloqué par cela, c'est un plan de maintenance qui se déroule le week-end pour recréer les indices, donc je n'ai aucune idée de ce qui pourrait générer le problème.
Ce sont les verrous générés par la suppression ...
Object Lock Type Mode Status Owner
tb_intervaloServico TAB IX GRANT Xact
tb_periodicidadeServico TAB IS GRANT Xact
Quelqu'un a des conseils sur la façon d'obtenir à la racine du problème? Je soupçonne que la table tb_intervaloServico est la racine du blocage car elle est appelée dans la suppression et dans la sélection, mais je ne peux pas reproduire le comportement.
il n'y a pas besoin d'utiliser la table temporaire, vous pouvez escalader les verrous sur la sélection avec un soupçon –