

oracleデータベースで,1度目に問い合わせた場合は数秒で結果が返ってくるのですが、直後に全く同じSQLで問い合わせを行うと、途端に結果を返してくれなくなってしまいます。

SQLや実行計画を記載出来ないのが申し訳ないのですが、以下のような状況です。

  * 10個程度テーブルを外部結合
  * 多いテーブルでは70万レコード、他は数万レコード
  * 各テーブルはanalyzeを施した直後
  * 実行計画のコストは10000ほど

調べたところ`[alter system flush
shared_pool]`で実行計画のキャッシュを消せるとあったため試したところ、その直後はまた結果がすぐ返ってきました。

現在は開発段階なので都度flushしているのですが、それ以外の方法で改善する方法はありませんでしょうか。やはりSQLチューニングが必要でしょうか。

環境については以下のような状況です。

  * 仮想マシン上のWindowsサーバ
  * Oracle 11.2
  * 仮装マシンメモリ8GB
  * その他詳しい設定などは不明(調べ方/注意点がわかりません)

拙い質問ですがよろしくお願い致します.

* * *

**追記**  
書き忘れておりましたが、仮想マシンのタスクマネージャを見ていると1回目の結果が返ってくる際にはCPU使用率が上がったりするのですが、2回目以降はCPU使用率が動いているように見えませんでした。
(これは推測が多分に含まれますが。)

なお、EnterpriseManagerを監視する権限はありません。(状況を都度聞きに行くことは可能です。)

* * *

**追記2**  
1回目の問い合わせと2回目の問い合わせのSQLトレースを取得したところ、  
以下のような状態でした。  
これは2回目にFetchでつまづいてしまっているということでしょうか。

[code]

    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.57       0.58          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch        1      1.18       1.20          0     249222          0          61
    total        3      1.76       1.78          0     249222          0          61
    
[/code]

2回目の問い合わせ後のトレース

[code]

    call     count       cpu    elapsed       disk      query    current        rows
    Parse        2      1.20       1.20          0          0          0           0
    Execute      2      0.00       0.00          0          0          0           0
    Fetch        2   2723.88    3392.82   45574362  237788264          0           0
    total        6   2725.08    3394.02   45574362  237788264          0           0
    
[/code]


CC BY-SA 3.0
2014-12-17T16:00:07.693
1938
2018-08-31T13:41:53.227
2014-12-24T13:25:22.793
208
3907
question
sql oracle
oracleで1度問い合わせたSQLが2回目からは結果を返して来ません


別の回答にもありましたが、SQLトレースの取得して、PARSE, EXECUTE, FETCHのどのフェーズで時間を要しているか確認すべきでしょう。
なお、テーブルの結合数が多い、２回目のみ発生といった問題の状況から、ソフトパースに（想定外の）時間を要していることが疑われます。 Oracle
Databaseの不具合の可能性も含めて調査を進めるべきでしょう。また、可能であれば最新のPatch Setで問題が回避できないか確認してください。


CC BY-SA 3.0
2014-12-18T00:30:55.287
1952
2014-12-18T00:30:55.287
4811
1938
answer


カーディナリティフィードバックを無効にしてください


CC BY-SA 4.0
2018-08-31T13:41:53.227
47984
2018-08-31T13:41:53.227
29940
1938
answer