Gần đây tôi đã phải vật lộn với một vấn đề tương tự. Hóa ra là cơ sở dữ liệu bị thiếu chỉ mục trên các khóa ngoại. Điều đó khiến Oracle phải khóa nhiều bản ghi hơn yêu cầu, điều này nhanh chóng dẫn đến bế tắc trong thời gian đồng thời cao.
Đây là một bài viết tuyệt vời với rất nhiều chi tiết hay, gợi ý và chi tiết về cách sửa lỗi deadlock: http://www.oratechinfo.co.uk/deadlocks.html#unindex_fk