ユーザ用ツール

サイト用ツール


it技術:データベース:oracle

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
最新のリビジョン両方とも次のリビジョン
it技術:データベース:oracle [2019/03/27 16:43] – [Oracle.DataAccess.Clientの例外エラー] yajuadminit技術:データベース:oracle [2019/05/07 13:31] – [数秒で終わるはずのSQLがなぜか永遠に終わらない場合] yajuadmin
行 335: 行 335:
  
 ===== トラブル対応 ===== ===== トラブル対応 =====
 +==== 数秒で終わるはずのSQLがなぜか永遠に終わらない場合 ====
 +[[http://webmaid.blog.jp/archives/70282923.html|Oracleで、数秒で終わるはずのSQLがなぜか永遠に終わらない場合の対処方法]]
 +
 +=== 原因 ===
 +この現象の原因は、OracleのSHARED POOL(共有プール)にキャッシュされたSQL実行計画です。
 +
 +SQLがなぜか流れない、SQL文の"SELECT"や"WHERE"を1文字だけ変えてみて実行できるようになった場合は、ほぼこれが原因と考えてよいと思います。
 +
 +=== 対応 ===
 +キャッシュされたSQL実行計画を削除してあげればOKです。\\
 +Oracleの管理者権限で「ALTER SYSTEM FLUSH SHARED_POOL;」というSQLを実行してあげると、キャッシュされているSQL実行計画がすべて削除されます。実行後にOracleの再起動などは不要です。
 +
 +また、上記の構文を流さなくても、Oracleを再起動すればSHARED_POOLもクリアされます。
 +
 +※ただし、問題のSQLだけでなく、その他のSQLの実行計画も削除されてしまうので、他の処理のレスポンスも最初の1回はわずかに速度下がってしまうこともある。
 ==== ORA-00257 ==== ==== ORA-00257 ====
 === 原因 === === 原因 ===
行 498: 行 513:
   * [[http://odakeiji.blog33.fc2.com/blog-entry-24.html|私が使うSQL文の捕まえ方&実行計画取得方法(後編)]]   * [[http://odakeiji.blog33.fc2.com/blog-entry-24.html|私が使うSQL文の捕まえ方&実行計画取得方法(後編)]]
   * [[http://odakeiji.blog33.fc2.com/blog-entry-119.html|Oracleで実行されたSQLのバインド変数の値を知る方法]]   * [[http://odakeiji.blog33.fc2.com/blog-entry-119.html|Oracleで実行されたSQLのバインド変数の値を知る方法]]
 +  * [[http://replication.hatenablog.com/entry/2015/06/08/090000|直近5分間に実行されたSQLを参照する]]
  
 ==== インデックスの断片率の確認 ==== ==== インデックスの断片率の確認 ====
it技術/データベース/oracle.txt · 最終更新: 2020/02/04 15:20 by yajuadmin