Streams Using Far More Memory Than Streams_pool_size (Doc ID 737428.1)

Last updated on SEPTEMBER 12, 2015

Applies to:

Oracle Database - Enterprise Edition - Version to [Release 10.2]
Information in this document applies to any platform.


On Oracle and earlier, when setting Streams_pooL_size=200m (for example) 200Meg might be left free and using far more:

POOL Total Memory Free Bytes Used Bytes Percent Free
------------ ---------------- ---------------- ---------------- ------------
java pool 167,772,160 142,354,432 25,417,728 84.85
shared pool 789,020,568 371,705,688 417,314,880 47.11
streams pool 1,623,291,912 198,460,392 1,424,831,520 12.23 ---->>>>>>

In the system used in the above example, we have the following parameters set:

Shared_pool_size = 750M
db_cache_size = 512m

No automatic memory management is being used.

The documentation describes streams pools as the following :
Oracle® Database Concepts 10g Release 2 (10.2) Part Number B14220-02
Chpater 8 Memory ArchitectureStreams Pool

In a single database, you can specify that Streams memory be allocated from a pool in the SGA called the Streams pool. To configure the Streams pool, specify the size of the pool in bytes using the STREAMS_POOL_SIZE initialization parameter. If a Streams pool is not defined, then one is created automatically when Streams is first used.

If SGA_TARGET is set, then the SGA memory for the Streams pool comes from the global pool of SGA. If SGA_TARGET is not set, then SGA for the Streams pool is transferred from the buffer cache. This transfer takes place only after the first use of Streams. The amount transferred is 10% of the shared pool size.


Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms