データベースファイルの構成とI/Oの診断(1) --- ファイル分散

  • 表領域の使用方法
    • Oracleの構造上はSYSTEM表領域だけでDBは構成できるが、通常は最低下図のレベルに表領域を分けることを検討する。
    • 表領域のタイプは、ローカル管理表領域を検討する。エクステント割当のパフォーマンスも良く、断片化の解消も必要ない。
    • ディクショナリ管理領域の場合、SMONプロセスによって空きエクステントの結合ができるのは、表領域のPCTINCREASEが1以上のとき。

表領域 用途
SYSTEM表領域 データディクショナリ、SYSTEMロールバックセグメント用。パッケージやストアドプログラムもデータディクショナリに格納されるので使用する際は容量に注意。SYSスキーマで独自に作ったオブジェクトはSYSTEM表領域以外に配置することを検討する。
UNDO表領域 9iからの自動UNDO管理を使用する(普通使う)場合は、UNDOセグメント専用の表領域が必要。
一時表領域 一時セグメント用。ディスクソート時に使用される。ユーザ作成時にデフォルト一時表領域を指定できるが、忘れると勝手にSYSTEM表領域になってしまうので要注意。
表セグメント用 OLTPの場合、表と索引は同時に挿入・読み取りが行われることが多いため、競合の回避のためにも、異なる表領域に格納することを是非検討する
索引セグメント用
大きなオブジェクト用 LONGデータ型またはLOBデータ型を含む表は分けたほうが良い

  • ファイルを分ける
    • OLTP(更新系)システムでは、データファイルとREDOログファイルは別のディスクに配置を検討
    • REDOログファイルはメンバごとに異なるディスクに配置
    • REDOログファイルとアーカイブログファイルは別のディスクに配置を検討
  • データファイルのストライプ化
    • OSによるストライプ化
      • ストライプ管理ソフト or RAID
      • DSS系システムのストライプ幅=DB_FILE_MULTIBLOCK_READ_COUNT初期化パラメータとデータブロックサイズの倍数
    • 手動ストライプ化
      • 表領域を複数のデータファイルで構成し、データファイルはそれぞれ別のディスクへ配置
      • パラレルクエリに有効
  • ローデバイス
    • OSのキャッシュを回避するため、読み書きが高速