So I have added a table to inmemory and have scanned the table after that. But it is still not appearing in V$IM_SEGMENTS. In EXPLAIN PLAN it is showing INMEMORY ACCESS FULL. So not sure if it is using the column store.
Did these:
ALTER TABLE INMEMORY; SELECT * FROM ;
SELECT * FROM V$IM_SEGMENTS;
no rows
To start with
inmemory_sizeshould be around 100M. Following command should show appropriate size value for parameterinmemory_size:Loading of table segments into inmemory area kicks when there is a full scan on the table or inmemory priority clause is other than
none, so we need to be sure the select query you had done went throughtable access fullpath. So, one more way to initiate full table scan is to doselect count(*) from table.Or you can use
populateprocedure fromdbms_inmemorypackage to load the table manually into inmemory area.Example usage (for user inmem_user, table t1):
One more thing to consider here with respect to querying
v$im_segmentsis;bytes_not_populatedandpopulate_statuscolumns also to be queried for correctness. Whenv$im_segmentsreturns rows,bytes_not_populatedshould be0andpopulate_statusshould beCOMPLETED.More information about inmemory population can be foune here