Re: V$INMEMORY_AREA. POPULATE_STATUS out of memory

From: Stefan Koehler <contact_at_soocs.de>
Date: Thu, 27 Oct 2016 17:35:06 +0200 (CEST)
Message-ID: <1791248166.55686.1477582506677.JavaMail.open-xchange_at_app10.ox.hosteurope.de>


Hey Anton,
is it possible that the column data is pretty unique? If yes, you may hit the same issue that i described here in my Tweets (check follow-ups as well) last year: https://twitter.com/OracleSK/status/651738031955812353

By the way - what exact version do you use (e.g. inclusive PSU or IM BP)?  

Best Regards
Stefan Koehler

Freelance Oracle performance consultant and researcher Homepage: http://www.soocs.de
Twitter: _at_OracleSK  

> Anton <djeday84_at_gmail.com> hat am 27. Oktober 2016 um 17:21 geschrieben:
>
> Hello Andy,
>
> Thank for your response, could you please explain why I get out of memory, if it should be more than 75% free memory for inmemory store:
>
> I have 8GB for in-memory data ( query from V$INMEMORY_AREA ) and, as I see by in_memory_size from v$im_segments, there is only ~1800mb are stored
> in inmemory.
>
> I don't put all columns to inmemory:
>
> select table_name, decode(INMEMORY_COMPRESSION ,'NO INMEMORY','NO INMEMORY','INMEMORY') as compress_state,count (*) from V$IM_COLUMN_LEVEL group by
> table_name, decode(INMEMORY_COMPRESSION ,'NO INMEMORY','NO INMEMORY','INMEMORY') order by table_name,compress_state;
>
> TABLE_NAME | COMPRESS_STATE | COUNT(*)
> --------------- | --------------- | ----------
> T2109 | INMEMORY | 62
> T2115 | INMEMORY | 77
> T2115 | NO INMEMORY | 507
> T2909 | INMEMORY | 3
> T2909 | NO INMEMORY | 61
> T3558 | INMEMORY | 9
>
> This is not the reason why I have nozero bytes_not_populated in v$im_segments ?
> And how to calculate size of inmemory occupants ?
>
> ps: sorry for my English
>
> On 10/27/2016 05:17 PM, Andy Rivenes wrote:
>
> > > Hi Anton,
> >
> > The "OUT OF MEMORY" status in v$im_segments means that you did not have enough space allocated to the IM column store to populate the
> > segments that you enabled for INMEMORY. If you check the BYTES_NOT_POPULATED column in the v$im_segments view you should see a non-zero value for
> > one or more of your segments. Your query will still run and not return an error, but Oracle will only access the rows that have been populated in
> > the IM column store and the rest it will access from the row store (i.e. buffer cache and possibly disk).
> >
> > Regards,
> > Andy

--
http://www.freelists.org/webpage/oracle-l
Received on Thu Oct 27 2016 - 17:35:06 CEST

Original text of this message