L
o
a
d
i
n
g
.
.
.

ホーム

お知らせ

製品・ソリューション

サービス

導入事例・パートナー

EXEM Academy・ブログ

会社情報

採用情報

2021.03.24

SQLチューニング (第2回)

 第二回は、今後の全貌になります。今回は、TIPSはお届けできませんが、今後どのような内容になるのかをタイトルから想像いただき、今後のSQLチューニングのTIPS習得にお役立てください。


内容

  1. Chapter  01
    1. SQLチューニングの初めは? ・・・・   (第一回にて掲載ずみ)
  2. Chapter 02
    1. サブクエリと性能問題を理解すること
      1. サブクエリーに対する基本内容理解すること
        1. サブクエリとは
        2. サブクエリの使用パターンに対して調べてみよう
      2. サブクエリ動作方式理解すること
        1. FILTER動作方式
        2. 結合動作方式
        3. サブクエリ動作方式を制御するヒント
      3. サブクエリを活用したSQL性能改善
        1. 非効率的なMINUSの代わりにNOT EXISTSを使おう
        2. 結合の代わりにサブクエリを活用しよう
        3. WHERE節のサブクエリを結合に変更しよう
  3. Chapter 03
    1. スカラーサブクエリの理解と効率的なSQLの作成
      1. スカラーサブクエリの特性の理解
        1. 最大結果件数、繰り返し実行される
        2. 抽出されるデータは常に1件だけ有効である
        3. データが抽出されなくてもよい
      2. スカラーサブクエリと結合の理解および活用
        1. スカラーサブクエリは最終結果だけに実行しよう
        2. スカラーサブクエリと結合の関係から見るSQL性能問題
  4. Chapter 04
    1. WITH節理解と効率的なSQLの作成
      1. WITH節動作方式を理解すること
        1. MATERIALIZE動作方式
        2. INLINE VIEW動作方式
      2. SQL性能改善のためにWITH節を活用する
        1. データ重複アクセスを除去する
        2. VIEW PREDICATING性能問題を除去すること
        3. 階層クエリーのデータ処理を最小化すること
      3. WITH節を使う時、注意しなければならない点は?
        1. 同時性が高い場合MATERIALIZE動作方式は避けよう
        2. 抽出件数が多い場合WITH節は避けよう
        3. WITH節宣言は、SQLの最も前に位置させよう
        4. WITH節に動作方式ヒントを追加しよう
  5. Chapter 05
    1. MERGE構文理解と効率的なSQLの作
      1. MERGE構文の構成要素が分かること
        1. INTO節
        2. USING節
        3. ON節
      2. MERGE構文で処理されるデータを理解すること
        1. MERGE_T1テーブでは何件UPDATEされるか?
        2. MERGE_T1テーブルでは何件DELETEされるか?
        3. MERGE_T1テーブルでは何件INSERTされるか?
      3. MERGE構文作成時発生しうるエラーと解決方法を調べる
        1. TARGET TABLEとSOURCE TABLEの結合は1:1でなければならない
        2. UPDATEカラムはON節に使うことはできない
      4. MERGE構文は多様な形態のDMLを支援する
      5. MERGE構文を性能問題に活用しよう
  6. Chapter 06
    1. FUNCTION実行とSQL性能問題の理解
      1. FUNCTIONの基本内容を理解すること
        1. USER DEFINED FUNCTIONの意味
        2. USER DEFINED FUNCTIONの特徴と長所
        3. USER DEFINED FUNCTIONの種類と使用法
      2. FUNCTION動作方式を理解すること
        1. SELECT節に使うFUNCTIONの動作方式
        2. WHERE節に使うFUNCTIONの動作方式
      3. FUNCTION実行とSQL性能問題
        1. FUNCTIONは最終抽出結果にだけ実行しよう
        2. FUNCTIONがスカラーサブクエリで実行するように変更しよう
        3. FUNCTIONを呼び出す値のパターンを分析しよう
        4. SELECT節に使われたFUNCTIONを結合に変更しよう
        5. WHERE節のFUNCTIONをSELECT節に移そう
  7. Chapter 07
    1. DECODE & CASE WHENの理解および条件ステートメントの処理
      1. DECODE
        1. 構文
        2. 構文に対する詳細説明
        3. DECODEとパフォーマンスの問題
      2. CASE
        1. 構文
        2. 構文に対する詳細説明
        3. 単純CASEと探索CASE使用法
        4. 例を用いたCASEの使用法
  8. Chapter 08
    1. NULL処理構文の理解と効率的なSQLの作成
      1. NULL処理関数の理解
        1. NVL ()
        2. NVL2 ()
      2. NVLの活用
        1. 実行計画の分離
        2. IS NULL照会の改善
      3. グループ関数(COUNT,SUM,MAX,MIN)とNVL処理
      4. NULLABLEカラム使用による非効率COUNT関数処理
      5. IS NULL照会に対する改善方法検索
        1. NVL処理とFUNCTION BASED INDEX生成
        2. カラム属性変更(DEFAULT設定)とNULLデータ アップデート
        3. カラム追加およびインデックス生成後WHERE節変更
      6. IS NOT NULL照会に対する改善方法検索
        1. 多様なIS NOT NULL処理とSQL性能問題
        2. 結合処理時IS NOT NULLを活用すること
      7. ‘ ‘(BLANK)とNULLデータ処理
        1. ‘ ‘(BLANK)データがNULLか?
        2. TRIM & NVL処理
        3. ‘ ‘とNULLデータ処理関連性能問題
  9. Chapter 09
    1. 日データ関連関数紹介
      1. データタイプ間の日付データの制御
        1. DATE照会-エラーが発生する場合
        2. DATE照会-正常照会される場合
        3. 誤った日演算
      2. 日付、時間、分、秒の計算
      3. 日付と関連の便利な関数
        1. TO_DATE & TO_TIMESTAMP & TO_CHAR(datetime)
        2. ADD_MONTHS
        3. MONTHS_BETWEEN
        4. LAST_DAY
        5. NEXT_DAY
        6. ROUND
        7. TRUNC
        8. EXTRACT
  10. Chapter 10
    1. 任意のデータを活用した効率的なSQLの作成
      1. CONNECT BY LEVELでデータを抽出する
        1. 任意の数字作り
        2. 任意の日作り
      2. CONNECT BY LEVEL活用すること
        1. データ変換時CONNECT BY LEVELを使う
        2. データ重複照会の除去
        3. インデックス処理の負荷が多い場合
  11. Chapter 11
    1. カラム変形によるSQL性能問題の理解する
      1. 照会カラムと変数のデータ タイプを合わせよう
      2. カラムに不要なORACLE提供関数を使用しない
        1. 不適切にFUNCTIONをカラムに使う場合
        2. カラム変形によりインデックスのMIN/MAXを活用できない場合
        3. パーティションキー列の変形は、すべてのパーティションを読む
  12. Chapter 12
    1. 照会パターンに合うようにSQL実行計画を分岐すること
      1. 多くの照会パターンを持つSQLは一つのSQLでない
      2. SQLの照会パターン別の実行計画を分岐しよう
        1. 色々な条件を持つSQLの実行計画分岐すること
        2. 変数値の範囲によりSQLを分離しよう
  13. Chapter 13
    1. ROWNUMの理解と関連SQL性能問題の理解
      1. ROWNUMデータを先に抽出した後、問い合わせよう
      2. ORDER BYとROWNUMを同じ位置に置くのをやめよう
      3. ROWNUM=1は、ROWNUM<=1で使おう
      4. INDEX_DESCとROWNUM<=1を共に使うのをやめよう
      5. ROWNUM<=1は常に速くない
      6. インライン ビューにROWNUMを追加する時は注意しよう
  14. Chapter 14
    1. 画面PAGINATION処理する時これは守ろう
      1. ROWNUM処理をよくしよう
      2. インデックス カラム順序とORDER BY節順序を合わせよう
      3. PLANに現れるオペレーション中COUNTに騙されないでおこう
      4. NESTED LOOPS JOINを使おう
      5. NESTED LOOPS JOINに非効率が多くない場合、効果的である
      6. 基本的な形態のPAGINATIONを学ぼう

次回から、上記の内容をお届けします。

ご期待ください。

第三回へ、続く・・・


PHP Code Snippets Powered By : XYZScripts.com