ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
表領域 (Tablespace) とは
表領域は Oracle データベースの論理的なストレージ単位です。テーブルやインデックスなどのスキーマオブジェクトはすべてどこかの表領域に属し、表領域は 1 つ以上のデータファイル (OS 上の物理ファイル) に裏付けられます。
Oracle のストレージ階層を整理すると以下のようになります。
| 階層 | 論理 / 物理 | 説明 |
|---|---|---|
| データベース | 論理 | 最上位の入れ物 |
| 表領域 | 論理 | 論理的なグループ化単位 |
| セグメント | 論理 | テーブル / インデックスなど 1 オブジェクト分 |
| エクステント | 論理 | 連続したブロックの集まり |
| ブロック | 論理 | I/O の最小単位 (通常 8KB) |
| データファイル | 物理 | OS 上のファイル (.dbf) |
標準で用意される主な表領域
| 表領域 | 役割 |
|---|---|
SYSTEM | データディクショナリ (システムカタログ)。触らない |
SYSAUX | SYSTEM の補助。AWR / Statspack 等のリポジトリ |
UNDO (UNDOTBS1 等) | ロールバック / 読み取り一貫性に使う UNDO データ |
TEMP (TEMP) | ソートやハッシュ結合の中間データを格納する一時表領域 |
USERS | ユーザー作成オブジェクトのデフォルト格納先 |
業務用には専用の表領域を作るのが定石。SYSTEM や USERS に業務テーブルを置くのは原則 NG。
表領域の作成 (DDL)
-- 永続表領域の作成
CREATE TABLESPACE app_data
DATAFILE '/u01/app/oracle/oradata/ORCL/app_data01.dbf' SIZE 500M
AUTOEXTEND ON NEXT 100M MAXSIZE 10G
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
-- 一時表領域
CREATE TEMPORARY TABLESPACE app_temp
TEMPFILE '/u01/app/oracle/oradata/ORCL/app_temp01.dbf' SIZE 200M
AUTOEXTEND ON NEXT 100M MAXSIZE 5G;
-- UNDO 表領域
CREATE UNDO TABLESPACE app_undo
DATAFILE '/u01/app/oracle/oradata/ORCL/app_undo01.dbf' SIZE 200M
AUTOEXTEND ON NEXT 100M MAXSIZE 5G;
-- ビッグファイル表領域 (1 表領域 = 1 巨大ファイル、最大 128TB)
CREATE BIGFILE TABLESPACE big_data
DATAFILE '/u01/app/oracle/oradata/ORCL/big_data.dbf' SIZE 1G
AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED;
主要句の意味
| 句 | 意味 |
|---|---|
DATAFILE | 裏付けとなる物理ファイル名とサイズ |
AUTOEXTEND ON | 領域不足時に自動拡張 |
NEXT | 1 回の拡張量 |
MAXSIZE | 最大サイズ。UNLIMITED も指定可能 |
EXTENT MANAGEMENT LOCAL | エクステント管理方式 (現代はほぼ LOCAL) |
SEGMENT SPACE MANAGEMENT AUTO | セグメント空き領域の自動管理 (ASSM) |
BIGFILE | 巨大な単一ファイル形式 |
表領域へのオブジェクト割り当て
-- テーブル作成時に表領域を指定
CREATE TABLE orders (
order_id NUMBER PRIMARY KEY,
user_id NUMBER NOT NULL,
amount NUMBER(10,2)
) TABLESPACE app_data;
-- インデックスは別表領域に置くのが定番 (I/O 分散)
CREATE INDEX idx_orders_user ON orders(user_id)
TABLESPACE app_index;
-- ユーザーのデフォルト表領域を変更
ALTER USER app_user
DEFAULT TABLESPACE app_data
TEMPORARY TABLESPACE app_temp
QUOTA UNLIMITED ON app_data;
表領域の管理 (運用)
-- データファイル追加 (拡張)
ALTER TABLESPACE app_data
ADD DATAFILE '/u01/.../app_data02.dbf' SIZE 1G
AUTOEXTEND ON NEXT 200M MAXSIZE 10G;
-- データファイルのリサイズ
ALTER DATABASE DATAFILE '/u01/.../app_data01.dbf' RESIZE 2G;
-- 自動拡張のオン / オフ
ALTER DATABASE DATAFILE '/u01/.../app_data01.dbf'
AUTOEXTEND ON NEXT 100M MAXSIZE 5G;
-- オフラインに
ALTER TABLESPACE app_data OFFLINE;
-- 削除 (中身ごと、ファイルも消す)
DROP TABLESPACE app_data INCLUDING CONTENTS AND DATAFILES;
使用量の確認 SQL
-- 表領域ごとの使用量
SELECT
df.tablespace_name,
ROUND(df.bytes/1024/1024, 1) AS total_mb,
ROUND(NVL(fs.free,0)/1024/1024,1) AS free_mb,
ROUND((df.bytes - NVL(fs.free,0))/df.bytes * 100, 1) AS used_pct
FROM
(SELECT tablespace_name, SUM(bytes) AS bytes
FROM dba_data_files GROUP BY tablespace_name) df
LEFT JOIN
(SELECT tablespace_name, SUM(bytes) AS free
FROM dba_free_space GROUP BY tablespace_name) fs
ON df.tablespace_name = fs.tablespace_name
ORDER BY used_pct DESC;
-- 表領域内のセグメントランキング
SELECT segment_name, segment_type,
ROUND(bytes/1024/1024, 1) AS mb
FROM dba_segments
WHERE tablespace_name = 'APP_DATA'
ORDER BY bytes DESC
FETCH FIRST 20 ROWS ONLY;
表領域設計のベストプラクティス
- 業務オブジェクトは専用表領域に分ける (SYSTEM / USERS を汚さない)
- データとインデックスを別表領域に置くと I/O 分散できる
- 長期データはパーティションで複数表領域に分散 (古いパーティションは別ディスクに)
- 自動拡張は ON にしておく。ただし
MAXSIZEを必ず指定 (UNLIMITED は監視必須) - 監視: 80% 使用で警告、90% で対応開始のしきい値が一般的
- UNDO と TEMP はセッション同時実行数に応じてサイズ決定
FAQ
Q: 表領域とスキーマの違いは?
A: スキーマは所有者 (ユーザー) 単位のオブジェクト集まり、表領域は物理ストレージのグループ。1 つのテーブルは「ユーザー A が所有」「表領域 X に格納」のように直交する。
Q: 移行や削除で気をつけることは?
A: DROP TABLESPACE INCLUDING CONTENTS AND DATAFILES は物理ファイルも消えるので慎重に。RMAN バックアップ必須。
Q: BIGFILE 表領域のメリットは?
A: 単一の大容量ファイル管理で運用シンプル。大規模 DWH 向け。ただしファイル単位のリカバリ単位が大きいのはデメリット。
関連
- エクステント — 表領域内の連続ブロック
- セグメント — テーブル / インデックスの実体
- データファイル — 物理ストレージ
- UNDO / TEMP — 特殊用途の表領域
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?