DBAtlas · Atlas d'exploitation des bases de données

ORA-00060: Deadlock detected while waiting for resource (interblocage détecté en attente de ressource)

Oracle

Que signifie cette erreur ?

Deux sessions ou plus sont en interblocage, chacune attendant une ressource détenue par l'autre. Oracle détecte le cycle, choisit une victime et annule (rollback) l'instruction de cette session.

Cause

Verrous de ligne acquis dans des ordres différents, mêmes lignes mises à jour de manière croisée par différentes transactions, verrous de table lors des mises à jour de la table parente dus à des clés étrangères non indexées, ou DML concurrent sur un index bitmap.

Comment la corriger

Examinez le fichier de trace (graphe) de l'interblocage référencé dans l'alert log pour trouver les instructions SQL et les lignes en conflit. Dans l'application, accédez toujours aux tables/lignes dans le même ordre. Indexez les colonnes de clé étrangère (les FK non indexées sont une cause classique d'interblocage). Gardez les transactions courtes et revoyez la fréquence des commits. Interceptez la transaction victime dans l'application et relancez-la.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur