ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
SGA における Large Pool の位置づけ
Oracle の SGA (System Global Area) は複数のメモリ領域から構成されます:
| 領域 | 役割 |
|---|---|
| Database Buffer Cache | 表 / 索引のブロックをキャッシュ |
| Shared Pool | SQL の構文解析結果・実行計画・データ・ディクショナリキャッシュ |
| Redo Log Buffer | REDO レコードのバッファ。LGWR が REDO ファイルへ書く |
| Large Pool | 大きい連続メモリが必要な処理用(任意) |
| Java Pool | Java VM 用 |
| Streams Pool | Streams / GoldenGate 用バッファ |
Large Pool の主な用途
| 用途 | 説明 | 関連パラメータ |
|---|---|---|
| RMAN バックアップ / リカバリ | 並列バックアップのスレーブ用バッファ、ディスク I/O バッファ | BACKUP_TAPE_IO_SLAVES |
| 並列クエリ実行 | 並列スレーブ間のメッセージバッファ | PARALLEL_* |
| 共有サーバー (MTS) | UGA(ユーザーグローバル領域)の格納 | DISPATCHERS |
| Data Pump (expdp/impdp) | パイプ・キューバッファ | — |
| I/O Slave 処理 | 非同期 I/O 不可な環境でのスレーブ I/O | DBWR_IO_SLAVES |
Shared Pool との違い
| 項目 | Shared Pool | Large Pool |
|---|---|---|
| 確保単位 | 小〜中(4KB〜数十KB) | 大(数百KB〜数MB) |
| LRU 管理 | あり(古いものから破棄) | なし |
| 断片化 | 起きやすい (ORA-4031 の原因) | 起きにくい |
| 主な内容 | SQL 解析結果・実行計画 | UGA / RMAN バッファ等 |
| 必須か | 必須 | 用途により任意 |
RMAN や並列クエリの大きなメモリ要求を Shared Pool から取ろうとすると、Shared Pool が断片化して ORA-4031(共有プールに空きがない)が出ることがあります。これを避けるため Large Pool を専用に確保します。
Large Pool のサイズ設定
-- 現在のサイズ確認
SHOW PARAMETER large_pool_size;
-- 個別サイズで明示指定(手動メモリ管理)
ALTER SYSTEM SET large_pool_size = 256M SCOPE = BOTH;
-- AMM(Automatic Memory Management)有効時は自動調整
SHOW PARAMETER memory_target; -- 0 でない = AMM 有効
SHOW PARAMETER memory_max_target;
-- ASMM(Automatic Shared Memory Management)
SHOW PARAMETER sga_target; -- 0 でない = ASMM 有効
SHOW PARAMETER sga_max_size;
-- ASMM 配下でも下限を保証したい場合
ALTER SYSTEM SET large_pool_size = 128M SCOPE = BOTH; -- 最低 128M を確保
-- 11g 以降は手動指定しなくても、ASMM/AMM が必要時にサイズを動的に増減
現在の状態を確認するビュー
-- SGA 全体の構成
SELECT name, value/1024/1024 AS mb
FROM v$sga;
-- NAME MB
-- Fixed Size 8
-- Variable Size 1024
-- Database Buffers 2048
-- Redo Buffers 16
-- 動的コンポーネント別のサイズ
SELECT component, current_size/1024/1024 AS current_mb,
min_size/1024/1024 AS min_mb,
max_size/1024/1024 AS max_mb
FROM v$sga_dynamic_components
WHERE component LIKE '%pool%';
-- Large Pool 内部の利用状況
SELECT pool, name, bytes/1024/1024 AS mb
FROM v$sgastat
WHERE pool = 'large pool';
-- POOL NAME MB
-- large pool free memory 120
-- large pool PX msg pool 2
-- large pool KGH: NO ACCESS 8
RMAN で Large Pool が使われる例
-- I/O スレーブを使う設定(テープ装置等で有効)
ALTER SYSTEM SET BACKUP_TAPE_IO_SLAVES = TRUE SCOPE = SPFILE;
ALTER SYSTEM SET LARGE_POOL_SIZE = 256M SCOPE = SPFILE;
-- 並列度を設定して RMAN バックアップ
-- RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 4;
-- RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
-- バックアップ実行中の Large Pool 利用確認
SELECT pool, name, bytes/1024 AS kb
FROM v$sgastat
WHERE pool = 'large pool' AND name LIKE '%KSFQ%';
-- KSFQ = RMAN Sequential I/O Buffer
並列クエリで Large Pool が使われる例
-- 並列度を設定
ALTER SYSTEM SET PARALLEL_MAX_SERVERS = 32;
ALTER SYSTEM SET PARALLEL_MIN_SERVERS = 4;
-- 並列実行のヒント付きクエリ
SELECT /*+ PARALLEL(emp, 8) */ COUNT(*) FROM emp_billion;
-- 並列スレーブのメッセージバッファ確認
SELECT pool, name, bytes/1024 AS kb
FROM v$sgastat
WHERE pool = 'large pool' AND name LIKE '%PX%';
-- PX msg pool : Parallel eXecution メッセージ用
ORA-4031 と Large Pool の関係
OLTP + バッチ並行運用の本番でORA-04031: unable to allocate ... bytes of shared memoryが出る場合、Shared Pool 内で巨大連続領域を要求して断片化が原因のことが多いです:
-- 1. Large Pool を明示確保して逃がす
ALTER SYSTEM SET LARGE_POOL_SIZE = 256M;
-- 2. UGA を Large Pool に逃がす(共有サーバー時)
-- 自動的に Large Pool へ確保される
-- 3. Shared Pool の断片化解消(緊急対応)
ALTER SYSTEM FLUSH SHARED_POOL;
-- ★ 本番では SQL 計画キャッシュも消えるので注意。再ハードパースで CPU 跳ね上がる
サイズ見積もりの目安
| 用途 | 推奨サイズ |
|---|---|
| 小規模・RMAN のみ | 64M〜128M |
| 並列クエリ多用 | 256M〜512M |
| 共有サーバー + UGA 大 | 同時セッション × UGA 平均サイズ × 1.5 |
| 大規模 OLAP / DWH | 1G 以上、SGA_TARGET の 10〜20% |
AMM / ASMM 有効時はサイズを直接指定する必要はほぼありません。AWR レポートで Large Pool が圧迫されているなら下限を LARGE_POOL_SIZE で明示する程度です。
FAQ
Q: Large Pool を 0 にしたらどうなる?
A: 用途は Shared Pool で代用されますが、断片化リスクが上がります。並列クエリ・RMAN・MTS のいずれかを使うなら 64M 以上は確保しましょう。
Q: AMM と ASMM どちらが良い?
A: 11g 以降は AMM (memory_target) が手軽ですが、大規模本番では ASMM (sga_target + pga_aggregate_target) の方が予測性が高く推奨されます。
Q: AWR で Large Pool の使用率を見たい
A: AWR レポートの「Memory Statistics」セクションに current_size / target_size が出ます。v$sga_resize_ops でリサイズ履歴も確認可能です。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- データベースバッファキャッシュ
- 共有プール
- REDOログバッファ
- ラージプール
人気ページ
- 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
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- 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
- 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
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 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
コメントを削除してもよろしいでしょうか?