よろしければ1クリックお願いします

2018年03月21日

Oracle Database パフォーマンスチューニング2

今回もOracle Databaseのインデックスを使用したチューニングに関する備忘録を記載する。

【環境】
Oracle Database 11g R2

2.Oracle DatabaseのBツリー索引について
詳しいアルゴリズムは理解する必要はないと思うが、概念としては索引がつけられているデータに対して、同じステップ数で辿り着ける方法を採用していることを理解しておけばよい。
それには、索引データを
・ルートブロック
・ブランチブロック
・リーフブロック
というツリー構造でデータを管理し、目的のデータROWIDに辿り着けるようにしている。
同じ階層でデータを特定するROWIDを見つけることができることにより、同じステップ数で目的データを抽出することができるといった仕組みである。

【索引をつける基準】
索引はWHERE句による検索が多々行われる列に作成することが有効となる。
索引をつける、つけないの一例として
1).ツール内やデータ検索時にWHERE句の条件対象となる列
  目安として検索条件に指定した際に、50分の1まで絞り込める場合は索引をつけるとよい。
  10分の1まで絞り込めない場合は、索引をつけない方がよい。
  50〜10分の1である場合は、更新処理に伴う速度劣化と検索時の抽出速度を天秤にかけて判断する必要がある。

2).主キーには自動的に必ず索引付される。

3).更新処理の対象となる列にはあまりつけない
  更新処理時に索引作成処理が行われるため、更新時のパフォーマンス劣化となる。
  むやみに索引はつけない方がよい。

データベースに対するパフォーマンスにおいて、開発者側から行えるチューニングは、索引付とSQL文の改善であるが、索引付はデータベース管理者、SQL文はアプリケーション開発者が行う場合がある。

次回はSQL文をチューニングする際のノウハウをメモしておこうと思う。
==========================================
【ご参考サイト】
花咲く副業
熱い!暑い!!サラリーマン!!!
ちょっとおでかけ写真展
posted by クーキチ at 22:52 | Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。