ORACLE 12C In-Memory性能测试

1、查看oracle版本

SQL> select * from v$version;
BANNER	CON_ID
------------------------------------------------------------------------------------------ ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production	0
PL/SQL Release 12.1.0.2.0 - Production	0
CORE	12.1.0.2.0	Production	0
TNS for Linux: Version 12.1.0.2.0 - Production	0
NLSRTL Version 12.1.0.2.0 - Production	0

SQL> show pdbs

CON_ID CON_NAME	OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED	READ ONLY NO
3 PDB01	READ WRITE NO

SQL> alter session set container=pdb01;

Session altered.

SQL> show con_name;

CON_NAME
------------------------------
PDB01

  

2、查看inmemory是否启用

SQL> show parameter inmemory

NAME	TYPE	VALUE
------------------------------------ ----------- ------------------------------
inmemory_clause_default string
inmemory_force	string	DEFAULT
inmemory_max_populate_servers	integer	2
inmemory_query	string	ENABLE
inmemory_size	big integer 208M
inmemory_trickle_repopulate_servers_ integer	1
percent
optimizer_inmemory_aware	boolean	TRUE

  

3、创建测试表

SQL> conn keven/keven
Connected.
SQL> create table t1 as select * from dba_objects;
SQL> create table t2 as select * from dba_objects;
SQL> col table_name for a40
SQL> select * from v$inmemory_area;

POOL	ALLOC_BYTES USED_BYTES POPULATE_STATUS	CON_ID
-------------------------- ----------- ---------- -------------------------- ----------
1MB POOL	166723584	4194304 DONE	1
64KB POOL	33554432	131072 DONE	1

SQL> select table_name,INMEMORY,INMEMORY_PRIORITY,INMEMORY_DISTRIBUTE,INMEMORY_COMPRESSION,INMEMORY_DUPLICATE from user_tables;

TABLE_NAME	INMEMORY INMEMORY INMEMORY_DISTRI INMEMORY_COMPRESS INMEMORY_DUPL
---------------------------------------- -------- -------- --------------- ----------------- -------------
T2	DISABLED
T1	ENABLED NONE	AUTO FOR QUERY LOW NO DUPLICATE

Elapsed: 00:00:00.04

SQL> set autot trace
SQL> 
SQL> select * from t2;

91040 rows selected.

Elapsed: 00:00:01.22

Execution Plan
----------------------------------------------------------
Plan hash value: 1513984157

--------------------------------------------------------------------------
| Id | Operation	| Name | Rows | Bytes | Cost (%CPU)| Time	|
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT |	| 91040 | 9M| 426 (1)| 00:00:01 |
| 1 | TABLE ACCESS FULL| T2	| 91040 | 9M| 426 (1)| 00:00:01 |
--------------------------------------------------------------------------


Statistics
----------------------------------------------------------
53 recursive calls
0 db block gets
7569 consistent gets
1529 physical reads
0 redo size
12149139 bytes sent via SQL*Net to client
67311 bytes received via SQL*Net from client
6071 SQL*Net roundtrips to/from client
4 sorts (memory)
0 sorts (disk)
91040 rows processed

SQL> /

91040 rows selected.

Elapsed: 00:00:01.22

Execution Plan
----------------------------------------------------------
Plan hash value: 1513984157

--------------------------------------------------------------------------
| Id | Operation	| Name | Rows | Bytes | Cost (%CPU)| Time	|
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT |	| 91040 | 9M| 426 (1)| 00:00:01 |
| 1 | TABLE ACCESS FULL| T2	| 91040 | 9M| 426 (1)| 00:00:01 |
--------------------------------------------------------------------------


Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
7497 consistent gets
1529 physical reads
0 redo size
12149139 bytes sent via SQL*Net to client
67311 bytes received via SQL*Net from client
6071 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
91040 rows processed

SQL> alter table t2 inmemory;

Table altered.

Elapsed: 00:00:00.03
SQL> select * from t2;

91040 rows selected.

Elapsed: 00:00:01.32

Execution Plan
----------------------------------------------------------
Plan hash value: 1513984157

-----------------------------------------------------------------------------------
| Id | Operation	| Name | Rows | Bytes | Cost (%CPU)| Time	|
-----------------------------------------------------------------------------------
| 0 | SELECT STATEMENT	|	| 91040 |	9M| 20 (20)| 00:00:01 |
| 1 | TABLE ACCESS INMEMORY FULL| T2 | 91040 |	9M| 20 (20)| 00:00:01 |
-----------------------------------------------------------------------------------


Statistics
----------------------------------------------------------
9 recursive calls
0 db block gets
7507 consistent gets
1529 physical reads
0 redo size
4980841 bytes sent via SQL*Net to client
67311 bytes received via SQL*Net from client
6071 SQL*Net roundtrips to/from client
2 sorts (memory)
0 sorts (disk)
91040 rows processed

SQL> /

91040 rows selected.

Elapsed: 00:00:01.12

Execution Plan
----------------------------------------------------------
Plan hash value: 1513984157

-----------------------------------------------------------------------------------
| Id | Operation	| Name | Rows | Bytes | Cost (%CPU)| Time	|
-----------------------------------------------------------------------------------
| 0 | SELECT STATEMENT	|	| 91040 |	9M| 32 (16)| 00:00:01 |
| 1 | TABLE ACCESS INMEMORY FULL| T2 | 91040 |	9M| 32 (16)| 00:00:01 |
-----------------------------------------------------------------------------------


Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
3 consistent gets
0 physical reads
0 redo size
4980841 bytes sent via SQL*Net to client
67311 bytes received via SQL*Net from client
6071 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
91040 rows processed

结论:这里我们可以发现,使用了In-Memory功能之后,数据库consistent gets为3,相比未使用In-Memory特性之前7507,性能提升明显。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。