Oracle 12c新特性:IN-Memory Option - 快取與引數
2014年6月,在Oracle 12c的12.1.0.2版本中,Oracle正式釋出和引入了基於記憶體和列式計算的In-Memory Option (以下簡稱IMO),這距離Larry在2013年OOW上釋出這一特性已經過去了近10個月。
2014年7月22日,Oracle正式提供了12.1.0.2版本的資料庫產品下載,可以透過:
下載該產品的最新版本。
在上,Oracle也隨後釋出了下載連結:
下圖是IMO特性的原理圖,透過在記憶體中開闢一塊獨立的區域,Oracle將指定的表或者分割槽以列式記憶體儲存,但是在儲存上,仍然以一份行式儲存,這就需要額外的記憶體空間。
當然,記憶體對於Oracle來說從來都不是問題,為了配合IMO特性,Oracle此前已經推出了SuperCluster M6-32一體機,該伺服器滿配可以配置32 TB記憶體,這是一個記憶體快速擴充套件的時代:
我們來看一下Oracle廣為關注的這一新特性的表現。
IMO的預設的引數有:
SQL> select name from v$parameter where name like '%inmemory%';
NAME
------------------------------
inmemory_size
inmemory_clause_default
inmemory_force
inmemory_query
inmemory_max_populate_servers
在資料庫啟動時,可以看到SGA中分配的Inmemory Area區域:
SQL> show sga
Total System Global Area 2147483648 bytes
Fixed Size 2917936 bytes
Variable Size 402655696 bytes
Database Buffers 1191182336 bytes
Redo Buffers 13856768 bytes
In-Memory Area 536870912 bytes
啟用IMO特性,需要設定inmemory_size引數,指定可以作為記憶體列存的記憶體區域,該引數為靜態引數,以下語句將該記憶體指定為800M,重啟資料庫使得該引數失效:
SQL> alter system set inmemory_size=800M scope=spfile;
System altered.
除此之外,另外一個關鍵引數是:inmemory_max_populate_servers 。該引數設定用於將資料載入到記憶體的後臺程式數量。以下將該引數設定為2 :
SQL> alter system set inmemory_max_populate_servers=2;
System altered.
此後可以透過在表或者分割槽級別設定INMEMORY選項,將該表資料設定儲存在記憶體中:
SQL> alter table accbill inmemory;
Table altered.
以下透過測試來演示一下IN-Memory表的查詢效能,以下執行計劃中的INMEMORY意味著這是一個IMO查詢,邏輯讀僅為7,較常規表大大縮減:
如果我們將該表移出IMO記憶體,可以看到其邏輯讀變成了4076,執行效率也肯定大大下降:
透過檢視V$INMEMORY_AREA可以查詢記憶體區域的使用情況,其中USED_BYTES表明當前已經使用的記憶體:
注意,V$INMEMORY_AREA中的POPULATE_STATUS代表了當前資料向記憶體中載入的進度,在Done之前的查詢不能充分使用記憶體列式運算。
如果記憶體設定不足以容納指定的資料表,則狀態會顯示為"OUT OF MEMORY",這就需要去增加記憶體設定,或者減少Cache的物件數量。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/196700/viewspace-1967753/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 12C新特性In-MemoryOracle
- Oracle 12C新特性-資料泵新引數(LOGTIME)Oracle
- Oracle 12C新特性-資料泵新引數(VIEWS_AS_TABLES)OracleView
- 12C新特性___In-Memory列式儲存的總結
- Oracle 18c新特性詳解:In-Memory 專題Oracle
- Oracle 12C新特性-History命令Oracle
- Oracle 12c 兩個新特性Oracle
- Oracle 20c 的 In-Memory 新特性 Spatial 和 Text 支援Oracle
- Oracle 12c新特性--ASMFD(ASM Filter Driver)特性OracleASMFilter
- Oracle 20c 新特性:自主的 In-Memory 管理 - Self-ManagingOracle
- Oracle 12C新特性-RMAN恢復表Oracle
- Oracle 12c新特性---Rapid Home Provisioning (RHP)OracleAPI
- oracle 升級12c引數樣例Oracle
- mybatis二級快取引數MyBatis快取
- Oracle merge 與 PG新特性 UPSERTOracle
- Oracle 12c 新特性之臨時Undo--temp_undo_enabledOracle
- Oracle 12C R2新特性-本地UNDO模式(LOCAL_UNDO_ENABLED)Oracle模式
- ORACLE 12C 優化器的一些新特性總結(二)Oracle優化
- ORACLE 12C 優化器的一些新特性總結(一)Oracle優化
- Oracle 12C 中CDB和PDB的引數檔案管理Oracle
- 12c RMAN新特性之Recover Table
- 元件引數校驗與非props特性元件
- Redis 6.0 新特性篇:深度剖析客戶端快取(Client side caching)原理與效能Redis客戶端快取clientIDE
- Oracle ENABLE=broken引數與TCP KeepAliveOracleTCP
- Oracle 12C新特性-線上把非分割槽錶轉為分割槽表Oracle
- Oracle 12c新特性--LREG程式專門負責註冊例項服務Oracle
- Oracle Exadata與SGA快取記憶體CQOracle快取記憶體
- C# 9.0 新特性之 Lambda 棄元引數C#
- Nginx 內容快取及常見引數配置Nginx快取
- Oracle 21c新特性預覽與日常管理相關的幾個新特性Oracle
- 【12.2】Oracle 12C R2新特性-外部表支援分割槽了(Partitioning External Tables)Oracle
- ServiceWorker 快取與 HTTP 快取快取HTTP
- [20190718]12c rman新特性 表恢復.txt
- 【12c】12c RMAN新特性之recover table(表級別恢復)
- [20181109]12c sqlplus rowprefetch引數5SQL
- Oracle 核心引數Oracle
- 12c新特性,線上move資料檔案
- ORACLE 12C opatch fuser與ChecksystemCommandAvailable failedOracleAI
- Oracle 12c 備份與恢復Oracle