選択したオプティマイザによって選択される実行プランは、11gと12cだけでなく、同じバージョンの2つの環境間でも大きく異なる可能性があります。それは多くの要因に依存しますが、ほとんどは:
- テーブルの行数(環境間で類似していますか?)
- どのインデックスが存在しますか(両方のデータベースにまったく同じインデックスがありますか?)
- テーブルとインデックスの統計はありますか?また、それらはどの程度最新ですか?最新でない場合は、テーブルの統計情報を収集してください インデックス。
これらの詳細を投稿できれば、より役立つ回答を提供できます。
また、コードは自動生成されたように見えます。自由にコードを変更できる場合は、詳細に基づいて、書き直されたクエリやヒントを提案できます。
コードを変更できない場合は、SQLプラン管理(SPM)を使用してプランを強制することができます。つまり、実行速度が速いデータベースからエクスポートして、他のデータベースにインポートします。
更新
この簡略化されたバージョンのSQLを使用して、計画を生成します。
SELECT * FROM DMProgDate_00001
WHERE ProgressOID IN (
SELECT OID FROM DMProgress_00001
WHERE Project = 'Moho'
AND Phase = 'Procurement'
AND Displine = 'Q340'
AND ROWNUM <= 20
ORDER BY actCode
);