????Oracle ??12c?汾??????????????????????In-Memory??In-Memory?????????????????????
?????????????????????????????????????????????
????1.???In-Memory???????
SQL> show parameter inmemory;
NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
inmemory_clause_default              string
inmemory_force                       string                            DEFAULT
inmemory_max_populate_servers        integer                           0
inmemory_query                       string                            ENABLE
inmemory_size                        big integer                       0
inmemory_trickle_repopulate_servers_ integer                           1
percent
optimizer_inmemory_aware             boolean                           TRUE
????2.INMEMORY_SIZE??????in-memory???С
????SQL> alter system set inmemory_size=1000m scope=spfile;
????Connected to:
????Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
????With the Partitioning?? OLAP?? Advanced Analytics and Real Application Testing options
???????????????????
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 5016387584 bytes
Fixed Size                  3721128 bytes
Variable Size            1056966744 bytes
Database Buffers         3724541952 bytes
Redo Buffers               13053952 bytes
In-Memory Area            218103808 bytes
Database mounted.
Database opened.
????3.???????????
SQL> create table bmw.t as select * from dba_objects;
Table created.
SQL> select TABLE_NAME??INMEMORY_PRIORITY??INMEMORY_DISTRIBUTE??INMEMORY_COMPRESSION from dba_tables where table_name='T';
TABLE_NAME INMEMORY_PRIORITY        INMEMORY_DISTRIBUTE                           INMEMORY_COMPRESSION
---------- ------------------------ --------------------------------------------- ---------------------------------------------------
T
?????????δ?????????USED_BYTES
SQL> l
1* SELECT * FROM V$INMEMORY_AREA
SQL> /
POOL                 ALLOC_BYTES USED_BYTES POPULATE_STATUS          CON_ID
-------------------- ----------- ---------- -------------------- ----------
1MB POOL               837812224          0 DONE                          3
64KB POOL              201326592          0 DONE                          3
????4.?????δ???In-Memory?????
SQL> set autot trace
SQL> SELECT * FROM bmw.t;
90927 rows selected.
Execution Plan
----------------------------------------------------------
Plan hash value: 1601196873
--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      | 90927 |     9M|   416   (1)| 00:00:01 |
|   1 |  TABLE ACCESS FULL| T    | 90927 |     9M|   416   (1)| 00:00:01 |
--------------------------------------------------------------------------
Statistics
----------------------------------------------------------
5  recursive calls
0  db block gets
7487  consistent gets
1525  physical reads
0  redo size
12128303  bytes sent via SQL*Net to client
67223  bytes received via SQL*Net from client
6063  SQL*Net roundtrips to/from client
0  sorts (memory)
0  sorts (disk)
90927  rows processed
??????м???????????????TABLE ACCESS FULL??裬consistent gets?????7487??
????5.??????In-Memory??
SQL> set autot off
SQL> alter table bmw.t inmemory;
Table altered.
SQL> select TABLE_NAME??INMEMORY_PRIORITY??INMEMORY_DISTRIBUTE??INMEMORY_COMPRESSION from dba_tables where table_name='T';
TABLE_NAME INMEMORY_PRIORITY        INMEMORY_DISTRIBUTE                           INMEMORY_COMPRESSION
---------- ------------------------ --------------------------------------------- ---------------------------------------------------
T          NONE                     AUTO                                          FOR QUERY LOW