OracleSQLをシンプルに高速で書くための習慣

 私はこれまで業務アプリの運用保守を中心に担当してきました。中でも大規模システム&トラブルプロジェクトの運用保守が長く、深夜のトラブル対応も相当数、経験してきました。

 トラブル対応は一分一秒を争います。そんなとき多いのがデータリカバリするための対応です。より正確に、より速くSQLを書き、実行することが求められます。そんな状況で私が行ったSQLを速く正確に書く方法を紹介します。

1.まずSELECT句を*で書く

 当たり前ですがSELECT句を書きます。一旦、項目は一旦*としてfromまで書きます。
 【例】

 select
  *
 from

2.テーブルは結合する順番で書く

 結合する順番でテーブルを並べます。キレイにインデントは揃えてください。
 可読性はミスを減らすために重要です。whereまで書きます。
【例】

 select
  *
 from
  TABLE1 a
  ,TABLE2 b
  ,TABLE3 c
 where

3.抽出条件、結合条件の順で書く

 抽出条件と結合条件を分けて書いておきます。見返すときにどこを見ればよいかすぐにわかります。
【例】

 select
  *
 from
  TABLE1 a
  ,TABLE2 b
  ,TABLE3 c
 where
  a.USER_ID = ‘A001′ –抽出条件1
  and a.USER_KB = ’01’ –抽出条件2
  and a.USER_ID = b.USER_ID –結合条件3
  and b.USER_ID = c.USER_ID –結合条件3

4.最後にSELECT句を書く

 テーブル、抽出条件、結合条件が出そろったところで抽出項目を書きます。完成です。
 【例】

 select
  a.USER_ID
  ,a.USER_NM
 from
  TABLE1 a
  ,TABLE2 b
  ,TABLE3 c
 where
  a.USER_ID = ‘A001′ –抽出条件1
  and a.USER_KB = ’01’ –抽出条件2
  and a.USER_ID = b.USER_ID –結合条件3
  and b.USER_ID = c.USER_ID –結合条件3


  

最後に

 ちなみにこの順番はSQLを評価するときと同じ順です。最近はJOINがスタンダードなので、少し違うかもしれませんが。

>>おすすめのORACLE参考書まとめ





【SQLでお困りの方にオススメ】
■SQLが遅くなる原因
・SQLが突然遅くなる原因と対応方法
・OracleSQLのレスポンスが遅い原因3つ
・JOINを使って表結合するとSQLが遅い!?
・SQLがパラレル実行されない原因

■SQLチューニングの基礎知識
・ORACLE SQLのヒントとは
・ORACLEのオプティマイザと実行計画について
・ORACLEのテーブルやインデックスの「統計情報」とは

■SQLチューニングの方法
・SLECT文が遅いときのインデックス作成によるチューニング方法
・Update文が遅いときのチューニング方法
・Delete文が遅いときのチューニング方法
・IN句をEXISTS句に置き換えするチューニング方法
・OR句の置き換えによるチューニング方法
・IN句の置き換えによるチューニング方法
・テーブルアクセスフルスキャンを無くしてチューニングする方法
・SQLでGROUP BYが遅いときのチューニング方法
・SQLのソート処理が遅い場合のチューニング方法

■表や索引の断片化対策
・プロが教えるORACLEの表や索引の断片化解消の見積り方法
・ORACLE表の断片化を解消する3つの方法

■SQLのチューニングの補足情報
・ORACLE SQLヒントの書き方
・SQLに複数のヒントの書き方
・OracleSQLに実装すべき3つのSQLヒント
・ORACLE表の統計情報取得日の確認方法
・「統計情報が古い」とはどういうことか
・ORACLE表の統計情報の取得方法

【自己学習したい方にオススメ】
・自宅で勉強用にORACLEデータベースを無償でダウンロードし構築する方法
・OracleMasterGold12cに一ヵ月で合格した勉強方法
・OracleMasterExpertパフォーマンス&チューニングに一ヵ月で合格した勉強方法
・手に職がない人はIT業界へ、オススメ資格と勉強方法
・OracleDBのチューニング勉強方法
・OraclePL/SQL勉強方法