06-12-2014, 01:07 PM,
|
|||||
|
|||||
RE: DBからSQLの結果が返ってこない
クエリの結果が返ってこない問題ですが、解決しました。 最終的な結論としては、「オプティマイザ・フィードバック」という機能に関するバグらしく、 この機能は、SQLの実行計画作成時に、統計情報を使って、同じSQL実行結果を考慮してくれる、 というものらしいのですが、、 この処理の際に、「アウトラインやSQLプロファイルを使用している場合に TABLE 句とバインド変数を含むクエリ」だと、実行計画を正しく生成できない という非公開バグがあるようです。 問題が起こるクエリ例: SELECT ... FROM (SELECT ...FROM table(table_function (plsql) expression)) ■オプティマイザ・フィードバックとは Oracle の ver 11.2から追加され、 これは、SQLの実行計画作成(ハードパース)時に、夜間等に収集されてるOracleの統計情報から、 実データのカーディナリティ(データの種類の多さ)を合わせて考慮することで、 実行計画の制度を上げることを目的とした機能・・・らしい。 これによって、同じSQLでも、実行計画が都度変わる可能性がある・・・らしい。 解決策は、このオプティマイザ・フィードバック機能を、 Oracleパラメータの設定で無効にする(_optimizer_use_feedback = false)ことで、 同対応をしたところ、今のところこちらの環境では、同現象が再現されなくなっています。 ちなみに、こちらの環境(11.2.0.1)でのみ発生する稀な問題で、 最新のマイナーバージョン(11.2.0.2)であれば、 同バグは修正されているようです。 今回の教訓は 「とりあえず最新の環境でためしてみろ」 「わからないことは素直にサポートに聞け」 という2点ですね。 |
|||||
« Next Oldest | Next Newest »
|
Messages In This Thread |
DBからSQLの結果が返ってこない - by umemura - 05-09-2014, 08:43 PM
RE: DBからSQLの結果が返ってこない - by umemura - 05-19-2014, 05:08 PM
RE: DBからSQLの結果が返ってこない - by umemura - 06-12-2014, 01:07 PM
RE: DBからSQLの結果が返ってこない - by adilmalik - 09-25-2014, 02:24 PM
|
Users browsing this thread:
1 Guest(s)
1 Guest(s)