2013年10月26日のブックマーク (1件)

  • WITH - オラクル・Oracle SQL 入門

    WITH 句 / 共通テーブル式 (Common Table Expression : SQL-99) WITH 句は、副問い合わせに名前を付ける句である。この名前を付けられた副問い合わせは、「インラインビュー」 または 「一時表」として使用される。 同じインラインビューを何度も SQL の中に記述するよりも WITH 句で問い合わせに名前付けを行なうことで視認性が高まり、場合によりパフォーマンスが向上する可能性がある。 特に WITH では一時表を作ることがあるという特殊性(※)から実行計画に Merge Join Cartesian(直積)が出てビックリすることがあるかもしれない。 しかし、これは「大きな表と小さな表の結合」+「大きな表と別な小さな表の結合」の検索処理より 「小さな表同士の直積結合」+「直積した表と大きな表の結合」を選択した方が高速であるとオプティマイザが算出した結果な

    istb16
    istb16 2013/10/26
    キャッシュするのか… WITh使ったらパフォーマンス激落ちした、理由が理解できました