Recentemente sono stato alle prese con un problema simile. Si è scoperto che nel database mancavano gli indici sulle chiavi esterne. Ciò ha indotto Oracle a bloccare molti più record del necessario, il che ha portato rapidamente a un deadlock durante l'elevata simultaneità.
Ecco un articolo eccellente con molti dettagli, suggerimenti e dettagli su come risolvere un deadlock:http://www.oratechinfo.co.uk/deadlocks.html#unindex_fk