特別な表領域データベースサーバがデータベースを管理するために使用する表領域を指します。SYSTEM表領域データベース作成時に作成されます。データベース内のすべてのオブジェクトに関する定義情報をもちます(データディクショナリ)。システム表領域のサイズは、Oracleのオプション製品の数とユーザ作成のストアドプロシージャの量によって決まります。オプション製品を選択せず、ストアドプロシージャも作成しない場合は、約200MBで作成されます。通常200MBから500MBくらいまでの間で設定し、調整します。SYSAUX表領域SYSTEM表領域の補助表領域としてOracle10gから登場しました。セッションごとに実行されるSQLの各種統計情報を、デフォルトでディスク上のSYSAUX表領域に書き込んでいます。パラメータを設定することによって、統計情報の取得を制御できます。格納するログ情報によって、ディスク容量は大量に必要になりますので、チューニングの必要性を考慮して適切なパラメータを設定する必要があります。更新前の状態に戻すための処理を、トランザクション単位で管理します。OLTP系(更新が多い)システムでは、更新前情報を書き込むため、IOが頻繁になる可能性が高くなります。Oracle8iまでは、表領域に管理者が明示的にRBS(ロールバックセグメント)を作成する必要がありました。ロールバックセグメントの設計は、パフォーマンスに関係する部分が多いため、若干補足説明をします。Oracle9iからは自動UNDO管理機能が追加され、管理者がロールバックセグメントを作成する必要はなくなり、サーバが自動的にロールバックセグメントを作成し、エクステントサイズの拡張などの管理を自動的に行います。自動UNDO管理を実装する場合には、以下の設定を行います。UNDO_RETENTION=n(秒)ロールバックセグメントを作成する場合には、次の点に注意して設計を行います。use_rollback_segment=RBS名;UNDO表領域もローカル管理表領域として作成します。UNDO表領域のサイズは、100MB以上、最低でも、作成されるテーブルのうち最も大きいサイズの表の大きさを指定します。一時表領域メモリ上(PGA)でソートできないような大規模なソートが発生した場合、ソート結果を一時的にディスク上に書き出し、最終的にメモリ上でマージした結果をユーザに戻します。頻繁に大規模なソートを行うDSS系のシステムでは、I/Oが頻発する可能性があります。Oracle8i以降の一時表領域は、自動的にローカル管理の一時表領域を使用します。実行されるDML文はREDOエントリを生成しないため、パフォーマンス上、改善されています。Oracle9iからは、デフォルトー時表領域を作成することができるようになりました。これは、ユーザが大規模ソートを実行して一時表領域を使うことになった場合、明示的に各ユーザごとに一時表領域を指定しておかなくても、自動的にデフォルトー時表領域を使用することができるようになる機能です。この機能によって、一時表領域としてSYSTEM表領域を使用するリスクを回避することができるようになりました。一時表領域のサイズの指針としては、最低でも作成されるテーブルのうち最大サイズの表の2倍の大きさを指定してください。エクステントサイズは、大容量のソートを行うための初期化パラメータSORT_AREA_SIZEの整数倍に設定します。物理設計では、表容量の見積りを行い、表を格納する表領域を決め、最終的には、ボリュームごとの物理ファイルの配置、容量見積り、ディスク分割を行います。その一番元になる表容量の見積りについて説明します。見積りに必要な情報は、表に含まれる行数(予測値)、各列の平均的な長さとデータ型、ブロック内空き領域の割合(PCTFREE:表作成時に指定するパラメータ)の3つです。データブロック当たりに利用可能なデータ領域は、以下の式で求めます。利用可能なデータ領域の計算PCTFREEと行移行PCTFREEの値は、ブロック内の空き容量の割合を示します。表と索引では、この空き領域の使用方法が異なります。表の場合、行データがUPDATEされて行長が拡張された場合に、その拡張分をブロック内に収めるために使用される空き領域として設定されます。表によって、挿入時の行長と、後からUPDATE文によって拡張される行長の差分は異なるので表ごとに指定します。ブロックに初めて行が挿入されるとき、空き領域で指定された部分まで行データは挿入されますが、それを超えることはありません。PCTFREEの値はデフォルトが10%です。行長が長くなるのに対してPCTFREEの値が小さい場合、ブロック内の空き領域は不足します。いずれかのタイミングで、更新後の行が同じブロックに書き込めなくなると、新しいブロックに、長くなった行データを移し、そこへのボインタを元のブロックに置きます。これを行移行と呼びます。行移行が起きると、索引を使って行を特定しようとしたとき、該当のブロックに行はなく、移行先のブロックを走査する必要があるため、パフォーマンスが低下します。平均的な行長は以下の式で求めます。必要なブロック数は以下の式で求めます。具体的な作業イメージが掴みづらい概念設計を詳しく学べるコースです。技術力に定評のあるトレーナー陣がデータベース設計作業をじっくり丁寧に解説し、スキルアップをサポートします。ご要望に応じて一社向けに研修コースをカスタマイズすることも可能です。/個人情報の取り扱いについて。