apps-dba journal

A working journal for Oracle DBAs.

September 19, 2026

Oracle DBA Lesson 10A — When the Specialty Pools Matter

Oracle DBA · Lesson 10A

When the Specialty Pools Matter

Lessons 6–9 mapped the everyday SGA: shared pool, buffer cache, and redo. This cut covers three specialty pools — large, Java, and Streams — that stay quiet until the right features turn them on.

AI Ops Pro channel

Watch on YouTube

Oracle DBA Lesson 10A — When the Specialty Pools Matter

AI Ops Pro

Three pools — only when features need them

Not every SGA region is always “on.” The large pool, Java pool, and Streams pool are specialty buckets. Inventory them when you use the features that consume them. Do not invent consumers just because the names appear in a diagram.

Large pool

The large pool is an optional SGA area for bulky, short-lived allocations that used to chew holes in the shared pool — for example RMAN buffers, parallel-query messaging, I/O slaves, and session (UGA) state when you run shared server.

  • Purpose: keep large jobs from fragmenting the shared pool.
  • It is not where ordinary SQL sort/hash work areas live (that is PGA — Lesson 10B).
  • Size it when those consumers are real on your instance, not because the name sounds important.

Java pool and Streams pool

Java pool backs the database Java runtime (JVM in the database). If you are not running Java inside Oracle, expect it to stay quiet.

Streams pool shows up for messaging, Data Pump, and some replication-related features. Requirements depend on what you actually enable — do not tune a quiet pool by name alone.

Inventory without guessing

Start with parameters, then confirm what is allocated in the SGA.

SHOW PARAMETER large_pool_size
SHOW PARAMETER java_pool_size
SHOW PARAMETER streams_pool_size

Teaching peek — zeros or automatic management are normal when those features are not driving demand.

SELECT pool, ROUND(SUM(bytes)/1024/1024,1) AS mb
FROM   v$sgastat
WHERE  pool IN ('large pool','java pool','streams pool')
GROUP  BY pool
ORDER  BY pool;

Totals can include FREE MEMORY entries. An absent row is not a broken feature — it often means that pool is not in play.

Gotchas

  • Specialty pools matter when features need them — not as permanent “must size” knobs on every database.
  • Large pool protects the shared pool from bulky jobs; it does not replace PGA work areas for sorts and hashes.
  • Java pool ≠ a separate Java client app’s heap; it is the database JVM.
  • Absent v$sgastat row ≠ failure. Inventory first; invent consumers never.

Quick quiz

Choose one answer, then submit. You’ll see the correct answer and a short why.

1. Why does the large pool exist?

2. When should you expect the Java pool to matter?

3. You query v$sgastat for the Streams pool and get no row. What is the safest first read?

4. Which statement matches this lesson’s mental model?

No comments:

Post a Comment