web-dev-qa-db-ja.com

Oracle Select Query over Database Linkが突然無限にハングする

何年も使用されているクエリがありますが、今日、クエリが際限なくハングし始めました。クエリを分解したところ、ハングする原因となった部分は、主キーの単純な結合であり、稲妻のように実行されるはずです。問題のあるテーブルを削除すると、クエリは1秒未満で実行されます。

総合的には次のようになります:(問題のテーブルはremote2です)

SELECT fields 
FROM local_table1, local_table2, ... (more tables)
     remote_table1@dblink remote1, remote_table2@dblink remote2 
WHERE
      ...clauses to tie the local tables together with each other and remote_table1... 
      remote2.primary_key = remote1.primary_key_of_remote2 
      AND remote2.afield <> 'avoid this value' 

それはある種のDBロックに引っかかっているように動作していますが、私自身もDBAもそれを見つけることができません。これをロックしているリモートデータベースリンクによって使用されるある種の特別なキューイングメカニズムはありますか?

2
Jeff

まれに、分散トランザクションが失敗し、分散トランザクションの一方の側に何らかの「ハーフロック」が残ることがわかりました。反対側がいなくなったので、それは解決されませんでした。ロックを検索する一般的なツールの少なくとも1つは、これらのロックを認識しませんでした。しかし、それらを見つけることはできました(v $ lockを照会したと思います。覚えていません。最後に発生してから1年以上経過しています)。これを修正するために、そのセッションを実行しているプロセスを特定し、DBAがkill -9でOSプロセスを強制終了しました。これはまれな問題であり、約18か月間私はそれを見ていません。そのため、それはOracleの以前のバージョンでのみ発生する問題である可能性があります。 (ただし、通常は1年に1〜2回しか発生しないため、運が良かっただけかもしれません。)

1
Jeff