Jeg har for nylig kæmpet med et lignende problem. Det viste sig, at databasen manglede indekser på fremmednøgler. Det fik Oracle til at låse mange flere poster end krævet, hvilket hurtigt førte til et dødvande under høj samtidighed.
Her er en fremragende artikel med masser af gode detaljer, forslag og detaljer om, hvordan man løser en deadlock:http://www.oratechinfo.co.uk/deadlocks.html#unindex_fk