No.1463 「テーブルスペース」とはなんですか?
「テーブルスペース」とはなんですか?
Oralceデータベースは、「テーブルスペース」と呼ばれる論理的な蓄積ユニットに区切られています。
Oracleでは、最低次の5つのテーブルスペースを持つようにと推奨しています。
(1)system・・・データベース・ディクショナリ・セグメントだけをもつ。
(2)rbs ・・・・ロールバック・セグメントのみを持つ。
(3)temp・・・・一時セグメントのみを持つ。
(4)tools ・・・Oracleフォームスのような汎用的なツールの為のセグメントを持つ。
(5)users ・・・ユーザのセグメントを持つ。<−−−−− 通常、ここにDBを作成します。
これらのデータ・ファイルは、
create table space...
alter table space ... add datafile ...
などのステートメントによって作成/拡張できます。
以上は、Oracle関連の文献より引用。

![]() |
データファイル、テーブルスペース、テーブルの関係。テーブルスペースは「論理的」な領域で、複数のOSファイル(データファイル)で構成される |
データファイルは、実際にユーザーのデータが格納される場所です。Oracleの内部では論理的に「テーブルスペース(表領域)」を作成し、その中にテーブルなどを格納することになります。
右の図に あるように、テーブルスペースはOracle内部に「論理的に」作られるため、複数のデータファイルから構成させることが可能です。例えばOS/ファイル システムの制限でファイルサイズに制限がある場合(Linuxのカーネル2.2以前では2Gbytes)でも、複数のデータファイルを集めて1つの大きな テーブルスペースを作ることができます。
また、複数のデータファイルを複数の物理ディスクに配置することにより、ディス クI/O負荷を分散させることもできます。経験的に、これはパフォーマンス向上に非常に効果的です。また、テーブルスペースの使用状況により、後からデー タファイルを追加してテーブルスペースのサイズを拡張することもできます。
テーブルスペースにはユーザーのテーブルやイ ンデックスだけでなく、システム領域(ユーザーログイン名やたくさんのシステム情報を格納)や、ロールバックセグメントなども格納されます。これらは、1 つのテーブルスペースにすべて格納することもできるのですが、実際のデータベース運用を任されたOracleマイスターがそれで満足していてはいけませ ん。運用管理のことを考慮した場合、少なくとも以下の4つのテーブルスペースに分割して作成する必要があります。