溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle 12C新特性In-Memory

發(fā)布時間:2020-08-07 10:20:22 來源:ITPUB博客 閱讀:174 作者:chenoracle 欄目:關(guān)系型數(shù)據(jù)庫

Oracle 12C 新特性 In-Memory

In-Memory 12C 開始,在 SGA 中新增加的內(nèi)存區(qū)域,可以實現(xiàn)表數(shù)據(jù)按列存儲;

In-Memory 并沒有取代傳統(tǒng)的Buffer Cache ,二者并存在 SGA 中。

Oracle 12C新特性In-Memory

SGA是動態(tài)區(qū)域,In-Memory大小是靜態(tài)的,需要DBA手動維護。

Oracle 12C新特性In-Memory

列式存儲數(shù)據(jù)和行式存儲數(shù)據(jù)各有優(yōu)缺點,適用場景不同。

列式存儲在訪問多行、少列情況下性能更優(yōu)。

Oracle 12C新特性In-Memory

Oracle 12C新特性In-Memory

下面啟用 inmemory 進行性能測試。

  數(shù)據(jù)庫版本為19C( 相當于 12.2.0.3 版本 )

SQL> select banner_full from v$version;

BANNER_FULL

---------------------------------------------------------------------

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.3.0.0.0

查看 inmemory 是否啟用

SQL> show parameter inmemory_size

NAME          TYPE  VALUE

------------------------------------ ----------- ------------------------------

inmemory_size        big integer 0

創(chuàng)建測試數(shù)據(jù)

SQL> conn cjc/cjc@cjcpdb

SQL> create table t1 as select * from dba_objects;

SQL> select count(*) from t1;

  COUNT(*)

----------

     72482

啟用 in - memory ( 實例級別 )

SQL> show parameter inmemory_size

NAME          TYPE  VALUE

------------------------------------ ----------- ------------------------------

inmemory_size        big integer 0

SQL> alter system set inmemory_size=300M scope=spfile;

SQL> shutdown immediate

SQL> startup

ORACLE instance started.

Total System Global Area 1287650440 bytes

Fixed Size       9145480 bytes

Variable Size     759169024 bytes

Database Buffers   201326592 bytes

Redo Buffers       3436544 bytes

In-Memory Area   314572800 bytes

Database mounted.

Database opened.

SQL> show parameter inmemory_size

NAME          TYPE  VALUE

------------------------------------ ----------- ------------------------------

inmemory_size        big integer 300M

性能對比

5.1 收集 T1 表統(tǒng)計信息

SQL>  EXEC DBMS_STATS.GATHER_TABLE_STATS('CJC','T1',estimate_percent=>100,CASCADE=> TRUE);

PL/SQL procedure successfully completed.

查看執(zhí)行計劃

SQL> set autotrace on

Oracle 12C新特性In-Memory

5.2 對表 t1 啟用 inmemory

SQL> conn sys/oracle@cjcpdb as sysdba

Connected.

SQL> alter table cjc.t1 inmemory;

--- 禁用 alter table cjc.t1 no inmemory;

5.3 收集統(tǒng)計信息

SQL> EXEC DBMS_STATS.GATHER_TABLE_STATS('CJC','T1',estimate_percent=>100,CASCADE=> TRUE);

5.4 查看執(zhí)行計劃

SQL> set autotrace on

SQL> select count(object_id) from t1;

COUNT(OBJECT_ID)

----------------

   72481

Oracle 12C新特性In-Memory

T1 表啟用 inmemory ,consistent gets 1412 降到 2 Cost 392 降到 16 ,性能提升比較明顯。

查詢相關(guān)信息

--- V$INMEMORY_AREA 、 V$IM_SEGMENTS V$IM_COLUMN_LEVEL

SELECT NAME, VALUE / (1024 * 1024 * 1024) "SIZE_IN_GB"

  FROM V$SGA

 WHERE NAME LIKE '%Mem%';

Oracle 12C新特性In-Memory

SELECT   POOL ,

        TRUNC ( ALLOC_BYTES /   ( 1024   *   1024   *   1024 ),   2 )  "ALLOC_GB" ,

        TRUNC ( USED_BYTES /   ( 1024   *   1024   *   1024 ),   2 )  "USED_GB" ,

       POPULATE_STATUS

   FROM  V$INMEMORY_AREA ;

Oracle 12C新特性In-Memory

SELECT  OWNER ,

       SEGMENT_NAME ,

       bytes ,

       INMEMORY_SIZE ,

       POPULATE_STATUS ,

       BYTES_NOT_POPULATED

   FROM  V$IM_SEGMENTS ;

Oracle 12C新特性In-Memory

SELECT table_name,

       segment_column_id,

       column_name,

       inmemory_compression

  FROM v$im_column_level;

Oracle 12C新特性In-Memory

注意事項

1 inmemory_size 不能小于 100M

SQL> startup

ORA-64353: in-memory area size cannot be less than 100MB

2 指定表在啟用或禁用 inmemory 時,要及時收集統(tǒng)計信息

否則執(zhí)行計劃里的信息是不準確的。

詳細信息可以參考官方文檔

https://docs.oracle.com/en/database/oracle/oracle-database/19/inmem/intro-to-in-memory-column-store.html#GUID-BFA53515-7643-41E5-A296-654AB4A9F9E7

Database In-Memory Guide

Introduction to Oracle Database In-Memory

歡迎關(guān)注我的微信公眾號"IT小Chen",共同學習,共同成長?。?!

Oracle 12C新特性In-Memory

Oracle 12C新特性In-Memory


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI