2006-08-01 アプリケーションのチューニング 1Z0-033 索引 B*Tree 少量の行を選択する問合せ ビットマップ カーディナリティが低い列 AND/ORなどの演算が入る場合 エントリ・レベルではなく、ビットマップ・セグメント・レベルでロックがかかるため、OLTPには向いていない(同時に多くの列がロックされるため競合が起こりやすい) 逆キー索引 競合を解消(同じリーフブロックの更新が多い場合など) 範囲検索には使用できなくなる(全表走査になる) いろんなセグメントタイプ 索引構成表 単一のB*Tree索引構造で、索引セグメントに表データをすべて格納 索引と表データが同じセグメントにあることでI/Oを少なくして高速化を図る 主キーでソートされている(主キー必須) 索引構成表に追加の索引を作る場合は、論理ROWIDが使用される ビットマップ索引を作成する場合は、マッピング表が必要になる PCTTHRESHOLD句を超える列は、OVERFLOW句を使ってオーバーフロー・セグメントに格納できる クラスタ化 複数の表をグループ化して格納、I/Oを少なくして高速化を図る 毎回結合されるような表に有効(索引クラスタ) 大規模な表で単一の索引キーで検索されるような表に有効(ハッシュクラスタ) 範囲検索はできない(全表検索になる) マテリアライズドビュー 通常のビューとは異なり、SELECT文による定義と、SELECT結果の両方を格納するオブジェクト リフレッシュ:元表の変更をビューに反映させる クエリーリライト:元表へのアクセスを、可能な場合自動的にビューへのアクセスに切り替えてくれる機能 クエリーリライトを行うための条件: CBO ENABLE QUERY REWRITEオプションをつけて作成 QUERY_REWRITE_ENABLED初期化パラメータがTRUE QUERY_REWRITE_INTEGRITY初期化パラメータを設定 QUERY REWRITEシステム権限 パーティション 表・索引をパーティション化し、複数のパーティション(セグメント)として管理 CBOで動作する 物理的な管理(セグメント移動、切捨て、削除など)はパーティション単位で可能 制約・権限などは親レベルでのみ制御可能 制限事項 グローバル・ビットマップ索引は作成できない LONG、LONG ROW型は使用できない クラスタ化はできない