У нас есть база данных Oracle, а таблица учетных записей клиентов насчитывает около миллиона строк. На протяжении многих лет мы создали четыре разных пользовательских интерфейса (два в Oracle Forms, два в .Net), все из которых остаются в использовании. У нас есть ряд фоновых задач (как постоянных, так и запланированных).
Что-то иногда держит длинную блокировку (скажем, более 30 секунд) в строке в таблице учетных записей, что приводит к сбою одной из постоянных фоновых задач. Запрашиваемая фоновая задача перезапустится после истечения времени обновления. Мы узнаем об этом через несколько минут после этого, но к тому времени блокировка была выпущена.
У нас есть основания полагать, что это может быть неправильный пользовательский интерфейс, но он не смог найти "курящее оружие".
Я нашел несколько запросов, которые перечисляют блоки, но это, когда у вас есть два задания, конкурирующих за строку. Я хочу знать, в каких строках есть блокировки, когда не требуется вторая работа, пытающаяся получить блокировку.
Мы находимся на 11g, но испытываем проблему с 8i.