天天看點

【Oracle】ORACLE 12c DB In-Memory相關參數

本篇文章對DB In-Memory涉及到的參數進行介紹:

首先看一下DB In-Memory相關的所有參數:

SQL> show parameter INMEMORY 

NAME                                 TYPE        VALUE

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

inmemory_clause_default              string

inmemory_force                       string      DEFAULT

inmemory_max_populate_servers        integer     1

inmemory_query                       string      ENABLE

inmemory_size                        big integer 1G

inmemory_trickle_repopulate_servers_ integer     1

percent

optimizer_inmemory_aware             boolean     TRUE

1.INMEMORY_SIZE參數:

這個參數控制了SGA中In-Memory Area的大小。預設值為0,代表DB In-Memory功能不啟用。如果要啟用DB In-Memory功能需要将這個值置為非0且必須大于100M的值。

在多租戶環境中,如果在CDB級别下對于該參數的設定代表了整個CDB的In-Memory Area的大小。同時這個參數也可以在每個PDB下進行設定,對于所有PDB設定的值的和可以小于、等于或大于整個CDB的設定,但是CDB的INMEMORY_SIZE的值是包括CDB$ROOT和所有PDB可以使用的值的上限。在預設情況下PDB的INMEMORY_SIZE的值和CDB下參數值大小相同,代表改PDB可以使用所有CDB下的In-Memory Area。

2.INMEMORY_FORCE參數:

這個參數用來控制是否允許表和物化視圖使用In-Memory store。

預設值為DEFAULT,代表可以實作在對象級别設定INMEMORY和NO INMEMORY。

如果設定為OFF,代表表和物化視圖無法使用In-Memory。

3.INMEMORY_QUERY參數:

這個參數用來控制是否允許In-Memory查詢,預設為ENABLE。預設值代表查詢可以通路存儲在In-Memory中的資料庫對象,該參數還可以設定為DISABLE來禁止通路In-Memory中存儲的資料庫對象。

4.INMEMORY_CLAUSE_DEFAULT參數:

這個參數用來對新表和新物化視圖指定一個預設的In-Memory設定。

該參數預設設定為空,代表對于新表和新的物化視圖預設不啟用In-Memory,效果等同于設定該值為NO INMEMORY。

如果指定了改參數為INMEMORY,則新建立的表和物化視圖在建立時如果沒有指定INMEMORY條件,則預設對該表或物化視圖啟用In-Memory。隻對該參數設定後建立的表和物化視圖生效。

5.INMEMORY_MAX_POPULATE_SERVERS

該參數控制了背景負責将資料庫對象放入到In-Memory column store的server數量,預設為系統的core的數量。該參數根據系統負載情況進行調整,防止系統過載。

6.INMEMORY_OPTIMIZER_AWARE

該參數控制了資料庫優化器在計算cost時是否考慮In-Memory。預設為TRUE,即考慮。在設定為FALSE時,優化器在對SQL語句進行優化時将忽略In-Memory的性能。

7.INMEMORY_TRICKLE_POPULATE_SERVERS_PERCENT

該參數控制了對于In-Memory column store中的資料進行重新載入時最多允許的載入程序占總載入程序的比例,比如INMEMORY_MAX_POPULATE_SERVERS設定為10,INMEMORY_TRICKLE_POPULATE_SERVERS_PERCENT設定為10,則最多用于重新載入的servers數量為10*10%=1。

繼續閱讀