Таблицы оракула заблокированы

Я не dba, но у меня проблемы с базой данных, которая блокирует таблицы и в результате создает большой хаос. Я получаю некоторую информацию от оракула dba, если кто-то может помочь мне найти ключ к проблеме или указать мне, что мне нужно сделать, я добавлю дополнительную информацию здесь:

введите здесь описание изображения

введите здесь описание изображения

У меня есть большой отчет от оракула, но я не понимаю 95% данных.


person Gustavo    schedule 22.09.2014    source источник
comment
это привело к блокировке столов и созданию большого хаоса Не могли бы вы немного пояснить это? Каковы симптомы? Это внезапное поведение?   -  person Sylvain Leroux    schedule 22.09.2014
comment
Да, реестр и таблицы заблокированы, поэтому в следующий раз, когда пользователь попытается получить доступ к веб-приложению, он будет заблокирован в ожидании ответа. Это происходит, когда к системе обращается много пользователей. Я имею в виду, когда нагрузка на систему очень велика.   -  person Gustavo    schedule 22.09.2014
comment
Есть ли у вас FK без индексов?   -  person Branko Dimitrijevic    schedule 23.09.2014


Ответы (1)


Это похоже на обычную блокировку на уровне строк. Строка может быть изменена только одним пользователем за раз. В словаре данных есть информация о том, кто заблокирован и кто осуществляет блокировку:

--Who's blocking who?
select
    blocked_sql.sql_id blocked_sql_id
    ,blocked_sql.sql_text blocked_sql_text
    ,blocked_session.username blocked_username
    ,blocking_sql.sql_id blocking_sql_id
    ,blocking_sql.sql_text blocking_sql_text
    ,blocking_session.username blocking_username
from gv$sql blocked_sql
join gv$session blocked_session
    on blocked_sql.sql_id = blocked_session.sql_id
    and blocked_sql.users_executing > 0
join gv$session blocking_session
    on blocked_session.final_blocking_session = blocking_session.sid
    and blocked_session.final_blocking_instance = blocking_session.inst_id
left join gv$sql blocking_sql
    on blocking_session.sql_id = blocking_sql.sql_id;

Если вы понимаете систему, обычно легче сосредоточиться на том, «кто» блокирует, а не на том, «что» блокируется. Приведенный выше запрос возвращает только несколько общих столбцов, но в этих таблицах есть десятки других столбцов, которые могут помочь идентифицировать процесс.

person Jon Heller    schedule 22.09.2014