1

私はデータベース管理者ではありませんが、テーブルをロックし、結果として大きな混乱を引き起こしているデータベースに問題があります。オラクルのデータベース管理者から情報を入手します。誰かが問題の鍵を見つけるのを手伝ってくれたり、何をする必要があるかを教えてくれたりしたら、ここにさらに情報を入れます:

ここに画像の説明を入力

ここに画像の説明を入力

オラクルから大きなレポートがありますが、データの 95% を理解していません。

4

1 に答える 1

2

これは、通常の行レベル ロックのように見えます。行を変更できるのは、一度に 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;

システムを理解していれば、「何」がブロックされているかではなく、「誰が」ブロックを行っているかに注目する方が通常は簡単です。上記のクエリはいくつかの一般的な列のみを返しますが、これらのテーブルには、プロセスの識別に役立つ可能性のある他の列が多数あります。

于 2014-09-22T18:30:55.967 に答える