Unable to allocate bytes of shared memory
401706Sep 11 2003 — edited Sep 12 2003My oracle show the following error:
ora-04031:unable to allocate 585984 bytes of shared
memory ("shared pool","unknown object","cursor work he",
"kllcqc:kllcqslt")
but when I query the v$sgastat:
POOL NAME BYTES
----------- -------------------------- ----------
fixed_sga 52144
db_block_buffers 83886080
log_buffer 40960000
shared pool free memory 387608352
shared pool miscellaneous 1472220
shared pool errors 1912
shared pool kxfp buffer su 657456
shared pool PLS non-lib hp 2096
shared pool Checkpoint queue 98208
shared pool transactions 531920
shared pool log_buffer 640000
POOL NAME BYTES
----------- -------------------------- ----------
shared pool table columns 16776
shared pool transaction_branches 111872
shared pool VIRTUAL CIRCUITS 785208
shared pool PL/SQL DIANA 1014264
shared pool kxfp subheap 109280
shared pool PL/SQL MPCODE 630340
shared pool session heap 25600064
shared pool db_files 264728
shared pool table definiti 14540
shared pool State objects 457508
shared pool db_block_buffers 1064960
POOL NAME BYTES
----------- -------------------------- ----------
shared pool KGK heap 9348
shared pool KGFF heap 12672
shared pool db_handles 210000
shared pool dictionary cache 1109992
shared pool PL/SQL PPCODE 18392
shared pool trigger defini 55380
shared pool KQLS heap 3601532
shared pool enqueue_resources 82440
shared pool library cache 5882796
shared pool ktlbk state objects 261080
shared pool sql area 22518920
POOL NAME BYTES
----------- -------------------------- ----------
shared pool processes 402000
shared pool sessions 1218780
shared pool branches 146640
shared pool event statistics per sess 1385280
shared pool fixed allocation callback 576
shared pool db_block_hash_buckets 169356
shared pool character set object 82376
the free memory of shared pool remains 387608352 bytes,
why? the free memory is still large,why to allocate it?