データベースファイルの構成とI/Oの診断(1) --- ファイル分散
- 表領域の使用方法
- Oracleの構造上はSYSTEM表領域だけでDBは構成できるが、通常は最低下図のレベルに表領域を分けることを検討する。
- 表領域のタイプは、ローカル管理表領域を検討する。エクステント割当のパフォーマンスも良く、断片化の解消も必要ない。
- ディクショナリ管理領域の場合、SMONプロセスによって空きエクステントの結合ができるのは、表領域のPCTINCREASEが1以上のとき。
表領域 | 用途 |
---|---|
SYSTEM表領域 | データディクショナリ、SYSTEMロールバックセグメント用。パッケージやストアドプログラムもデータディクショナリに格納されるので使用する際は容量に注意。SYSスキーマで独自に作ったオブジェクトはSYSTEM表領域以外に配置することを検討する。 |
UNDO表領域 | 9iからの自動UNDO管理を使用する(普通使う)場合は、UNDOセグメント専用の表領域が必要。 |
一時表領域 | 一時セグメント用。ディスクソート時に使用される。ユーザ作成時にデフォルト一時表領域を指定できるが、忘れると勝手にSYSTEM表領域になってしまうので要注意。 |
表セグメント用 | OLTPの場合、表と索引は同時に挿入・読み取りが行われることが多いため、競合の回避のためにも、異なる表領域に格納することを是非検討する | 索引セグメント用 |
大きなオブジェクト用 | LONGデータ型またはLOBデータ型を含む表は分けたほうが良い |
- ファイルを分ける
- データファイルのストライプ化
- OSによるストライプ化
- ストライプ管理ソフト or RAID
- DSS系システムのストライプ幅=DB_FILE_MULTIBLOCK_READ_COUNT初期化パラメータとデータブロックサイズの倍数
- 手動ストライプ化
- 表領域を複数のデータファイルで構成し、データファイルはそれぞれ別のディスクへ配置
- パラレルクエリに有効
- OSによるストライプ化
- ローデバイス
- OSのキャッシュを回避するため、読み書きが高速