ORA-12853: insufficient memory for PX buffers: current stringK, max needed stringK
FranklinFaces.com
FranklinFaces.com - Oracle & SQL Server Database Forums for all IT Professionals
 Home          Members     Calendar     Who's On

Welcome Guest ( Login | Register )
        



ORA-12853: insufficient memory for PX... Expand / Collapse
Message
Posted 6/15/2010 9:31:10 AM Post #348
 

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being
ora error code

ORA-12853:

insufficient memory for PX buffers: current stringK, max needed stringK
Cause:Insufficient SGA memory for PX buffers
Action:Reconfigure sga to include at least (max - current) bytes of additional memory

Posted 6/15/2010 9:31:44 AM Post #349
 

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being
I am getting the following error during oracle 11g loading. One of the consultant adviced us to set the large_pool_size or increase the SGA size. I am not sure that either of them will work. kindly help because oracle 11g is using automatic memory manager so we dont need to set large pool making it manual. our dba is of this opinion while the consultant is of the opinion that its better to set the large_pool_size since parallel execution have to allocate and deallocate memory from the share pool which under huge loads can fragment the sga or sga have to shrink the other pools to make room for big memory allocation. While our DBA is more of the opinion that since asmm have allocated memory from the share pool we dont need to worry about it.

who is right?

ORA-12801: error signaled in parallel query server P304, instance dwhrac2:ZAINNGDW2 (2)
ORA-12853: insufficient memory for PX buffers: current 183524K, max needed 2167200K
ORA-04031: unable to allocate 16072 bytes of shared memory ("large pool","unknown object","large pool","PX msg pool")
Posted 6/15/2010 9:32:45 AM Post #350
 

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being
ORA-12853: insufficient memory for PX buffers: current stringK, max needed string
Cause: Insufficient SGA memory for PX buffers

Action: Reconfigure sga to include at least (max - current) bytes of additional memory

As you may know, when using parallel query, the RAM caching is done from the PGA.

Oracle fires off parallel factotum processes, and each slave simultaneously reads a piece of the large table using PGA RAM.

But in your case, it looks like you want to increase your large_pool_size.

******************************************************

You may have exceed the default limits imposed by Oracle. For example, PC-based Oracle servers (1 or 2 CPU’s with 8 gigabytes of RAM) will often have unused RAM available. For example, a fully-cached 5 gigabyte database on an 8 gigabyte dedicated Oracle server will have approximately 1 gigabyte available for the PGA (allowing 20% for the OS and other SGA regions).

By re-setting pga_aggregate_target = 1000m, _pga_max_size = 1000m and _smm_px_max_size = 333m, parallel queries may now have up to 330 megabytes of RAM (30% of pga_aggegate_target), such that a DEGREE=4 parallel query would have 83 megabytes (333 meg/4).

Hope this helps. . .
Posted 6/15/2010 9:33:09 AM Post #351
 

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being
Setting LARGE_POOL_SIZE to a non-zero value will ensure that the large pool always gets at least this amount of memory. To quote from the 11g docs
11g Docs:
If these automatically tuned memory pools had been set to nonzero values, those values are used as minimum levels by Automatic Shared Memory Management. You would set minimum values if an application component needs a minimum amount of memory to function properly.

That said your query needs to allocate 2167200K of memory for parallel execution to work, that's a little over 2gb. Whilst that may be appropriate - say for a multiGB or TB table , it may well also be a sign that this particular query is accessing data very inefficiently (and then of course doing it in a parallel manner just to add to the fun). It would be interesting to see the statement and corresponding explain plan for the query giving this error.
Posted 6/15/2010 9:34:10 AM Post #352
 

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being
ORA-12853: insufficient memory for PX buffers: current stringK, max needed stringK

Cause: Insufficient SGA memory for PX buffers

Action: Reconfigure sga to include at least (max - current) bytes of additional memory

-----------------------------------------------------------------

If parallel_automatic_tuning = TRUE than we get RAM from the large pool, else we use the shared pool.

"Is there a way to calculate how much shared pool should be alloctaed?"

It would be a function of your maximum degree of parallelism.

If you hit the error with 1 gig with say 15 parallel processes, you could guesstimate that 2 gig would handle 30 PX servers.

What is the degree of parallelism?

There are many good reasons to only use parallelism at the hint level only. It influences the CBO to favour full scans.
Posted 6/15/2010 9:34:43 AM Post #353
 

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being
After some troubleshooting, I discovered that my SGA_TARGET parameter is causing the issue. Initially I set SGA as:

SGA_TARGET=12288M

However, Oracle did not take the value and threw ORA-12853

After some troubleshooting, I changed the value to 12000M and Oracle starts up without issues.
Therefore, if you encounter ORA-12853 error, try to adjust your SGA_TARGET parameter.

Posted 6/15/2010 9:36:38 AM Post #354
 

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being
Sorry if this is repeat qustion, but I wanted to clear some doubt about shared pool.

ORA-12012: error on auto execute of job 636
ORA-20667: ORA-20667: ORA-20667: ORA-20667: ORA-20667: ORA-20667: ORA-12801: error signaled in parallel query server P008
ORA-12853: insufficient memory for PX buffers: current 29056K, max needed 208896K
ORA-04031: unable to allocate 131096 bytes of shared memory ("shared pool","unknown object","sga heap(2,0)","PX msg pool")


So many times I have seen this kind of error and first thing I did is to flush the shared pool, so many times I have to bounce the DB also,
4031 coming for parallel query or some times for other sql queries.

I wanted to know about this error and how to set Shared Pool size.

ORA-04031: unable to allocate 131096 bytes of shared memory ("shared pool","unknown object","sga heap(2,0)","PX msg pool")

1. for eg take this phrase "unable to allocate 131096 bytes of shared memory" this bytes always change .. why ?

2.("shared pool","unknown object","sga heap(2,0)","PX msg pool") this mesg also change. how to find out porper guideline to understand the issue?

one more thing when I got this mesg. shared pool free memory was good enough

POOL NAME BYTES
------------ ------------------------------ --------------
shared pool sql area 15,193,092
shared pool free memory 112,852,804
shared pool library cache 23,860,180
large pool free memory 270,651,600
large pool session heap 266,219,312

Posted 6/15/2010 9:37:15 AM Post #355
 

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being
I was able to solve this issue, I changed query from parallel 16 to parallel 4,

« Prev Topic | Next Topic »


Reading This Topic Expand / Collapse
Active Users: 0 (0 guests, 0 members, 0 anonymous members)
No members currently viewing this topic.
Forum Moderators: silencer

Permissions Expand / Collapse

All times are GMT -5:00, Time now is 10:13am

Powered By InstantForum.NET v4.1.4 © 2012
Execution: 0.103. 10 queries. Compression Disabled.
Contextual Links