Quantcast
Channel: Doyensys Allappsdba Blog..
Viewing all articles
Browse latest Browse all 1640

IN-MEMORY In Oracle 12c

$
0
0


IN-MEMORY In Oracle 12c
=======================
How to check whether inmemory is enabled or not:

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  ---- > 0 Means inmemory not enabled
inmemory_trickle_repopulate_servers_ integer     1
percent
optimizer_inmemory_aware             boolean     TRUE



SQL>  select name,value from v$sga where NAME='In-Memory Area';

No rows selected.

How to enable the in-memory feature in DB:

SQL> alter system set inmemory_size=5G scope=spfile;

System altered.


shutdown immediate;
startup


SQL> show parameter inmemory_size

NAME                                 TYPE        VALUE
------------------------------------ ----------- -----------------------------
inmemory_size                        big integer 3G


SQL>  select name,value from v$sga where NAME='In-Memory Area';
NAME                      VALUE
-------------------- ----------
In-Memory Area       3221225472

Enable in-memory for  a table

SELECT table_name,inmemory,inmemory_priority,
inmemory_distribute,inmemory_compression,
inmemory_duplicate
FROM   dba_tables
WHERE table_name='test123';

no rows selected

SQL>select owner, segment_name, populate_status from v$im_segments

no rows selected



SELECT table_name,inmemory,inmemory_priority,
inmemory_distribute,inmemory_compression,
inmemory_duplicate
FROM   dba_tables
WHERE table_name='test123';

no rows selected

SQL>select owner, segment_name, populate_status from v$im_segments

no rows selected

SQL> alter table dbaadmin.test123 inmemory;

Table altered


col owner for a12
col segment_name for a12
select owner, segment_name, populate_status from v$im_segments

no rows selected


select count(*) from dbaadmin.test123;


col owner for a12
col segment_name for a12
select owner, segment_name, populate_status from v$im_segments

OWNER        SEGMENT_NAME POPULATE_STATUS
------------ ------------ ---------------
dbaadmin     test123        COMPLETED

set lines 299
col table_name for a12
SELECT table_name,inmemory,inmemory_priority,
inmemory_distribute,inmemory_compression,
inmemory_duplicate
FROM   dba_tables
WHERE table_name='test123';


TABLE_NAME   INMEMORY INMEMORY INMEMORY_DISTRI INMEMORY_COMPRESS INMEMORY_DUPL
------------ -------- -------- --------------- ----------------- -------------
test123        ENABLED  NONE     AUTO            FOR QUERY LOW     NO DUPLICATE



Now check the explain plan:


SQL> explain plan for select * from dbaadmin.test123;

Explained.

SQL> select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
Plan hash value: 3778028574

------------------------------------------------------------------------------------
| Id  | Operation                  | Name  | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT           |       | 77294 |  8001K|    29  (25)| 00:00:01 |
|   1 |  TABLE ACCESS INMEMORY FULL| test123 | 77294 |  8001K|    29  (25)| 00:00:01 | ---- >>> THIS ONE SHOWS THAT INMEMORY IS USED
------------------------------------------------------------------------------------

8 rows selected.


Enable in-memory with PRIORITY CRITICAL

ALTER TABLE dbaadmin.TEST3 INMEMORY PRIORITY CRITICAL;


SQL> select OWNER,SEGMENT_NAME,populate_status,INMEMORY_PRIORITY from v$im_segments;

OWNER    SEGMENT_N POPULATE_ INMEMORY
-------- --------- --------- --------
dbaadmin test124     COMPLETED CRITICAL
dbaadmin test123     COMPLETED NONE


Enable in-memory for a tablespace:

If enabled at tablespace level, all the tables will enable for IM column store.

SQL> select tablespace_name,DEF_INMEMORY,DEF_INMEMORY_PRIORITY,DEF_INMEMORY_COMPRESSION,
DEF_INMEMORY_DISTRIBUTE,DEF_INMEMORY_DUPLICATE from dba_tablespaces where tablespace_name='USERS';

TABLESPACE_NAME                DEF_INME DEF_INME DEF_INMEMORY_COMP DEF_INMEMORY_DI DEF_INMEMORY_
------------------------------ -------- -------- ----------------- --------------- -------------
USERS                          DISABLED

SQL> ALTER TABLESPACE USERS DEFAULT INMEMORY;

Tablespace altered.

SQL> select tablespace_name,DEF_INMEMORY,DEF_INMEMORY_PRIORITY,DEF_INMEMORY_COMPRESSION,
DEF_INMEMORY_DISTRIBUTE,DEF_INMEMORY_DUPLICATE from dba_tablespaces where tablespace_name='USERS';


TABLESPACE_NAME                DEF_INME DEF_INME DEF_INMEMORY_COMP DEF_INMEMORY_DI DEF_INMEMORY_
------------------------------ -------- -------- ----------------- --------------- -------------
USERS                          ENABLED  NONE     FOR QUERY LOW     AUTO            NO DUPLICATE


Disable in-memory for the table:

ALTER TABLE dbaadmin.test123 NO INMEMORY;

USAGE:

V$INMEMORY_AREA stores the usage of inmemory area.


set pagesize 200
set lines 200
select * from V$INMEMORY_AREA
POOL                       ALLOC_BYTES USED_BYTES POPULATE_STATUS                CON_ID
-------------------------- ----------- ---------- -------------------------- ----------
1MB POOL                    2549088256    9437184 DONE                                0
64KB POOL                    654311424    1638400 DONE                                0




Viewing all articles
Browse latest Browse all 1640

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>