standingzzz's Oracle memo

OracleSQLチューニングの豊富な経歴を生かして、主に11gと12cのオプティマイザ動作の違いなどについて、実用的な検証結果をメモしています。

ヒント句

Oracle12c ヒント句による実行計画の制御[ORDERED, LEADING, USE_NL, INDEX, OPT_PARAM]

概要 SQLが望ましくない実行計画となっている場合に、 ヒント句により結合順などを制御する例をあげます。 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production CentOS Linux release 7.3.1611 (Core) 検証 結合テスト用オブジェ…

Oracle12c OPTIMIZER_FEATURESによるNOT EXISTS句の実行計画の違いを確認する その2

概要 OPTIMIZER_FEATURESによるNOT EXISTS句の実行計画の違いを確認します。 その1ではSELECT句をcount(*)のみにしたことで、 12.2.0.1のELIMINATE_JOINにより、tab_bのJOINが省略される実行計画となりましたので、 tab_bのカラムをSELECT句に入れたSQLで…

Oracle12c OPTIMIZER_FEATURESによるNOT EXISTS句の実行計画の違いを確認する その1

概要 OPTIMIZER_FEATURESによるNOT EXISTS句の実行計画の違いを確認します。 検証のベースとなるSQL select count(*) from tab_a a left join tab_b b on b.id = a.id and b.cdate > sysdate - 1/24 where not exists ( select 1 from tab_b b2 where b2.id …