This is why our (12c) in-memory option is not *just* storing stuff in RAM, its a total restructure of the way we hold the data in RAM. Thanks, this helps to understand better. Below test is from Oracle 12c In-memory with big_table holding 10M rows in it.
rajesh@ORA12C> select min(object_id), max(object_id) from big_table ;
MIN(OBJECT_ID) MAX(OBJECT_ID)
-------------- --------------
2 104464
1 row selected.
Elapsed: 00:00:13.38
rajesh@ORA12C> alter table big_table
2 inmemory
3 no inmemory(OWNER ,
4 OBJECT_NAME ,
5 SUBOBJECT_NAME ,
6 DATA_OBJECT_ID ,
7 OBJECT_TYPE ,
8 CREATED ,
9 LAST_DDL_TIME ,
10 TIMESTAMP ,
11 STATUS ,
12 TEMPORARY ,
13 GENERATED ,
14 SECONDARY ,
15 NAMESPACE ,
16 EDITION_NAME ,
17 SHARING ,
18 EDITIONABLE ,
19 ORACLE_MAINTAINED ,
20 ID );
Table altered.
Elapsed: 00:00:00.32
rajesh@ORA12C> select min(object_id), max(object_id) from big_table ;
MIN(OBJECT_ID) MAX(OBJECT_ID)
-------------- --------------
2 104464
1 row selected.
Elapsed: 00:00:00.03
rajesh@ORA12C>