SlideShare a Scribd company logo
12c In Memory Management - Saurabh Gupta
Oracle Database 12c 
In-Memory 
Saurabh K. Gupta 
Database Product Management
Who am I? 
• Principal Technologist, Database Product 
Management 
• Author of “Oracle Advanced PL/SQL 
Developer Professional Guide”, Technical 
Reviewer, blogger 
• Experience in Oracle Databases, design, 
development and administration, High 
Availability solutions, Exadata 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
3
Oracle Database In-Memory Goals 
Real Time Accelerate OLTP 
Analytics 
No Changes to 
Applications 
Exploit latest 
generation 
hardware 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
CPU 
100x 2x
Become a Real-Time Enterprise 
• Data-Driven 
• Rapidly make decisions based on real-time 
data 
• Agile 
AGILE 
DATA-DRIVEN 
• Respond quickly to change 
• Efficient 
• Continually improve processes and 
profitability 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
5 
EFFICIENT
Row Format Databases vs. Column Format Databases 
Row 
 Transactions run faster on row format 
– Example: Insert or query a sales order 
– Fast processing few rows, many columns 
SALES 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
Column 
 Analytics run faster on column format 
– Example : Report on sales totals by region 
– Fast accessing few columns, many rows 
SALES 
6
Row Format Databases vs. Column Format Databases 
Row 
 Insert a new sales order on row format 
– One row insert = FAST 
SALES 
INSERT 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 7 
Column 
 Insert a new sales order in Column Format 
– Many column inserts = S L O W 
SSAtoLErSes 
INSERT 
INSERT 
INSERT 
INSERT 
Until Now Must Choose One Format and Suffer Tradeoffs
Breakthrough: Dual Format Database 
• BOTH row and column 
formats for same table 
• Simultaneously active and 
transactionally consistent 
Memory Memory 
SALES SALES 
• Analytics  reporting use new 
in-memory Column format 
• OLTP uses proven row format 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
8 
Row 
Format 
Column 
Format
OLTP is Slowed Down by Analytic Indexes 
Insert rate decreases as 
number of indexes 
increases 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Column Store Replaces Analytic Indexes 
• Fast analytics on any columns 
• Better for unpredictable analytics 
• Less tuning  administration 
Table 
1 – 3 
OLTP 
Indexes 
In-Memory 
Column Store 
• Column Store not persistent so 
update cost is much lower 
• OLTP  batch run faster 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
10
Oracle In-Memory Requires Zero Application Changes 
Full Functionality - No restrictions on SQL 
Easy to Implement - No migration of data 
Fully Compatible - All existing applications run unchanged 
Fully Multitenant - Oracle In-Memory is Cloud Ready 
Uniquely Achieves All In-Memory Benefits With No Application Changes 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
11
Program Agenda 
 Configuring the In-Memory Column Store 
 Populating the In-Memory Column Store 
 Querying the In-Memory Column Store 
 Monitoring the In-Memory Column Store 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 12
Configuring : In-Memory Column Store 
System Global Area SGA 
Buffer Cache 
Shared Pool Redo Buffer 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
Large Pool 
Other shared 
Memory 
Components 
In-Memory 
Area
Configuring : In-Memory Column Store 
• Controlled by INMEMORY_SIZE 
parameter 
•Minimum size of 100MB 
• SGA_TARGET must be large 
SELECT * FROM V$SGA; 
NAME VALUE 
------------------ --------- 
enough to accommodate 
• Static Pool 
Fixed Size 2927176 
Variable Size 570426808 
Database Buffers 4634022912 
Redo Buffers 13848576 
In-Memory Area 1024483648 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Program Agenda 
 Configuring the In-Memory Column Store 
 Populating the In-Memory Column Store 
 Querying the In-Memory Column Store 
 Monitoring the In-Memory Column Store 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 15
Oracle In-Memory Columnar Technology 
• Pure in-memory column format 
• Not persistent, and no logging 
• Quick to change data: fast OLTP 
• 2x to 20x compression 
Pure In-Memory Columnar 
• Enabled at table or partition 
level 
• Available on all hardware 
platforms 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 16 
SALES
Populating : In-Memory Column Store 
• Populate is the term used to bring data into the In-Memory column store 
• Populate is used instead of load because load is commonly used to mean 
inserting new data into the database 
• Populate doesn’t bring new data into the database, it brings existing data into 
memory and formats it in an optimized columnar format 
• Population is completed by a new set of background processes 
– ORA_W001_orcl 
– Number of processes controlled by INMEMORY_MAX_POPULATE_SERVERS 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
17
Populating : In-Memory Column Store 
• New INMEMORY ATTRIBUTE 
• Following segment types are 
eligible 
• Tables 
• Partitions 
ALTER TABLE sales INMEMORY; 
ALTER TABLE sales NO INMEMORY; 
• Subpartition 
• Materialized views 
• Following segment types not 
eligible 
• IOTs 
• Hash clusters 
• Out of line LOBs 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
CREATE TABLE customers …… 
PARTITION BY LIST 
(PARTITION p1 …… INMEMORY, 
(PARTITION p2 …… NO INMEMORY); Pure OLTP 
Features
Populating : In-Memory Column Store 
• Possible to populate only 
certain columns from a table or 
partition 
• Order in which objects are 
populated controlled by 
ALTER TABLE sales INMEMORY 
NO INMEMORY (PROD_ID); 
PRIORITY subclause 
• Critical, high, medium, low 
• Default – none (populate on 
first access) 
• Does not control the speed of 
population 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
CREATE TABLE orders 
(c1 number, 
c2 varchar(20), 
c3 number) 
INMEMORY PRIORITY CRITICAL 
NO INMEMORY (c1);
Populating : In-Memory Column Store 
• Objects compressed during 
population 
• New compression techniques 
• Focused on scan performance 
ALTER MATERIALIZED VIEW mv1 
INMEMORY MEMCOMPRESS FOR QUERY; 
• Controlled by MEMCOMPRESS 
subclause 
• Multiple levels of compression 
• Possible to use a different level for 
different partitions in a table 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
CREATE TABLE trades 
(Name varchar(20), 
Desc varchar(200)) 
INMEMORY 
MEMCOMPRESS FOR DML(desc);
Populating : In-Memory Column Store 
• Different levels 
• FOR DML 
Use on tables or partitions with 
very active DML activity 
• FOR QUERY 
CREATE TABLE ORDERS …… 
PARTITION BY RANGE …… 
(PARTITION p1 …… 
INMEMORY NO MEMCOMPRESS 
PARTITION p2 …… 
INMEMORY MEMCOMPRESS FOR DML, 
Default mode for most tables 
• FOR CAPACITY 
For less frequently accessed 
segments 
• Easy to switch levels as part of 
ILM strategy 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
PARTITION p3 …… 
INMEMORY MEMCOMPRESS FOR QUERY, 
: 
PARTITION p200 …… 
INMEMORY MEMCOMPRESS FOR CAPACITY 
);
Identifying : Tables With INMEMORY Attribute 
• New INMEMORY column in 
*_TABLES dictionary tables 
• INMEMORY is a segment 
attribute 
SELECT table_name, inmemory 
FROM USER_TABLES; 
TABLE_NAME INMEMORY 
• USER_TABLESdoesn’t display 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
------------ -------- 
CHANNELS DISABLED 
COSTS 
CUSTOMERS DISABLED 
PRODUCTS ENABLED 
SALES 
TIMES DISABLED 
segment attributes for logical 
objects 
• Both COSTS  SALES are 
partitioned = logical objects 
• INMEMORY attribute also 
reported in *_TAB_PARTITIONS
Identifying : Tables With INMEMORY Attribute 
• New view v$IM_SEGMENTS 
• Indicate: 
• Objects populated in memory 
• Current population status 
SELECT segment_name name, 
population_status status 
FROM v$IM_SEGMENTS; 
• Can also be used to determine 
compression ratio achieved 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
NAME STATUS 
------------ -------- 
PRODUCTS COMPLETED 
SALES STARTED
Oracle Compression Advisor And In-Memory 
• Easy way to determine 
memory requirements 
• Use DBMS_COMPRESSION 
• Applies MEMCOMPRESS to 
sample set of data from a table 
• Returns estimated 
compression ratio 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Oracle In-Memory Advisor 
• New In-Memory Advisor 
• Analyzes existing DB workload 
via AWR  ASH repositories 
• Provides list of objects that 
would benefit most from being 
populated into IM column 
store 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Program Agenda 
 Configuring the In-Memory Column Store 
 Populating the In-Memory Column Store 
 Querying the In-Memory Column Store 
 Monitoring the In-Memory Column Store 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 26
Why is an In-Memory scan faster than the buffer cache? 
SELECT COL4 FROM MYTABLE; 
X 
X 
Buffer Cache 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 27 
X 
X 
X 
RESULT 
Row Format
Why is an In-Memory scan faster than the buffer cache? 
SELECT COL4 FROM MYTABLE; 
IM Column Store 
RESULT 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 28 
Column Format 
RESULT 
X 
X 
X 
X
Oracle In-Memory Column Store Storage Index 
• Each column is the made up 
of multiple column units 
• Min / max value is recorded 
for each column unit in a 
storage index 
Example: Find sales from stores with a store_id of 8 or higher 
Memory 
Min 1 
Max 3 
Min 4 
• Storage index provides 
partition pruning like 
performance for ALL queries 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
29 
SALES 
Column 
Format 
Max 7 
Min 8 
Max 12 
Min 13 
Max 15
Orders of Magnitude Faster Analytic Data Scans 
CPU 
PROMO_ID 
Example: 
Find all sales 
With PROMO_ID 9999 
Memory 
• Each CPU core scans local in-memory 
columns 
• Scans use super fast SIMD 
vector instructions 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 30 
Load 
multiple 
PROMO_ID 
values 
Vector 
Compare 
all values 
an 1 cycle 
9999 
9999 
9999 
9999 
VECTOR 
REGISTER 
• Originally designed for 
graphics  science 
• Billions of rows/sec scan rate 
per CPU core 
• Row format is millions/sec
Identifying : INMEMORY Table Scan 
• Optimizer fully aware 
• Cost model adapted to consider 
INMEMORY scan 
• New access method 
TABLE ACCESS IN MEMORY FULL 
• Can be disabled via new 
parameter 
• INMEMORY_QUERY 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Identifying : INMEMORY Table Scan 
• NEWSession level statistics 
• Best way to determine if 
In-Memory was use 
• Best way to measure the 
benefits of In-Memory scan 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Joining and Combining Data Also Dramatically Faster 
• Converts joins of data in 
multiple tables into fast column 
scans 
Example:Find all orders placed on Christmas eve 
DATE_DIM LINEORDER 
Datekey is 
24122013 
Date 
DateKey 
• Joins tables 10x faster 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
33 
DateKey 
Type=d.d_date='December 24, 2013' 
Amount 
Sum
Identifying : INMEMORY Joins 
• Bloom filters enable joins to be 
converted into fast column 
scans 
• Tried and true technology 
originally released in 10g 
• Same technique used to offload 
joins on Exadata 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Multiple bloom filter 
• Multi-table joins are common 
in analytic queries 
• Possible to apply multiple 
bloom filters to the fact table 
due to sophisticated 
Select d.d_year, s.s_nation, 
sum(lo_revenue - lo_supplycost) 
From LINEORDER l, DATE_DIM d, 
PART p, SUPPLIER s 
Where l.lo_orderdate = d.d_datekey 
And l.lo_partkey = p.p_partkey 
Optimizer 
• Simultaneously joining to all 
of the dimension tables while 
scanning the fact table 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
And l.lo_suppkey = s.s_suppkey 
And p.p_mfgr= 'MFGR#12’ 
And s.s_region = 'AMERICA’ 
Group by d.d_year, s.s_nation 
Order by d.d_year, s.s_nation;
Multiple Bloom Filter 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
In-Memory Aggregation 
• Dynamically creates in-memory 
report outline 
• Then report outline filled-in 
during fast fact scan 
Example: Report sales of footwear in outlet stores 
Sales 
Products 
In-Memory 
Report Outline 
Footwear 
$ 
• Reports run much faster 
without predefined cubes 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
37 
Stores 
Outlets 
Footwear 
Outlets 
Sales 
$$ 
$ 
$$$
Identifying : INMEMORY Aggregation 
Hash Group By 
 MMoonniittoorriinngg Monitoring tthhee the IInn--In-MMeemmoorryy CCoolluummnn SSttoorree 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 
Vector Group By
Program Agenda 
 Configuring the In-Memory Column Store 
 Populating the In-Memory Column Store 
 Querying the In-Memory Column Store 
 Monitoring the In-Memory Column Store 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 39
New In-Memory Central Screen in EM 
In-Memory Area (GB) :4.00 
In-Memory Area Used (GB) :1.79 
Object map integrated with 
12c heatmap feature 
New In-Memory Central Screen in EM 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
New In-Memory Central Screen in EM 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
New In-Memory Central Screen in EM 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
New In-Memory Entries in CPU Wait Class 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
New In-Memory Entries in CPU Wait Class 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
In-Memory Query in SQL Monitor 
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
12c In Memory Management - Saurabh Gupta
12c In Memory Management - Saurabh Gupta

More Related Content

What's hot (20)

PPTX
Indexes: Structure, Splits and Free Space Management Internals
Christian Antognini
 
PDF
Exadata Deployment Bare Metal vs Virtualized
Umair Mansoob
 
PDF
How should I monitor my idaa
Cuneyt Goksu
 
PDF
Exadata deployment life cycle
Umair Mansoob
 
PPTX
C15LV: Ins and Outs of Concurrent Processing Configuration in Oracle e-Busine...
Maris Elsins
 
PDF
Indexes overview
aioughydchapter
 
PPTX
Oracle Database 12c Release 2 - New Features On Oracle Database Exadata Expr...
Alex Zaballa
 
POTX
Business Insight 2014 - Microsofts nye BI og database platform - Erling Skaal...
Microsoft
 
PDF
Avoid boring work_v2
Marcin Przepiórowski
 
PDF
The Top 12 Features new to Oracle 12c
David Yahalom
 
PPTX
Best New Features of Oracle Database 12c
Pini Dibask
 
PDF
Exadata Performance Optimization
Enkitec
 
PPTX
Dan Hotka's Top 10 Oracle 12c New Features
Embarcadero Technologies
 
PPTX
Intro to Exadata
Moin Khalid
 
PDF
Oracle Database In-Memory Advisor (English)
Ileana Somesan
 
PDF
Aioug ha day oct2015 goldengate- High Availability Day 2015
aioughydchapter
 
PPTX
Real Time Operational Analytics with Microsoft Sql Server 2016 [Liviu Ieran]
ITCamp
 
PPTX
Oracle Database 12c - Features for Big Data
Abishek V S
 
PPTX
Inside SQL Server In-Memory OLTP
Bob Ward
 
PDF
Oracle 12c New Features for Developers
CompleteITProfessional
 
Indexes: Structure, Splits and Free Space Management Internals
Christian Antognini
 
Exadata Deployment Bare Metal vs Virtualized
Umair Mansoob
 
How should I monitor my idaa
Cuneyt Goksu
 
Exadata deployment life cycle
Umair Mansoob
 
C15LV: Ins and Outs of Concurrent Processing Configuration in Oracle e-Busine...
Maris Elsins
 
Indexes overview
aioughydchapter
 
Oracle Database 12c Release 2 - New Features On Oracle Database Exadata Expr...
Alex Zaballa
 
Business Insight 2014 - Microsofts nye BI og database platform - Erling Skaal...
Microsoft
 
Avoid boring work_v2
Marcin Przepiórowski
 
The Top 12 Features new to Oracle 12c
David Yahalom
 
Best New Features of Oracle Database 12c
Pini Dibask
 
Exadata Performance Optimization
Enkitec
 
Dan Hotka's Top 10 Oracle 12c New Features
Embarcadero Technologies
 
Intro to Exadata
Moin Khalid
 
Oracle Database In-Memory Advisor (English)
Ileana Somesan
 
Aioug ha day oct2015 goldengate- High Availability Day 2015
aioughydchapter
 
Real Time Operational Analytics with Microsoft Sql Server 2016 [Liviu Ieran]
ITCamp
 
Oracle Database 12c - Features for Big Data
Abishek V S
 
Inside SQL Server In-Memory OLTP
Bob Ward
 
Oracle 12c New Features for Developers
CompleteITProfessional
 

Similar to 12c In Memory Management - Saurabh Gupta (20)

PDF
Sloupcové uložení dat a použití in-memory technologií u řešení Exadata
MarketingArrowECS_CZ
 
PDF
Oracle Database In-Memory Meets Oracle RAC
Markus Michalewicz
 
PPTX
Oracle Database in-Memory Overivew
Maria Colgan
 
PDF
Oracle in-Memory Column Store for BI
Franck Pachot
 
PPTX
GLOC Keynote 2014 - In-memory
Connor McDonald
 
PDF
Oracle12c Database in-memory Data Sheet
Oracle
 
PDF
Oracle DB In-Memory technologie v kombinaci s procesorem M7
MarketingArrowECS_CZ
 
PPTX
Geek Sync I Need for Speed: In-Memory Databases in Oracle and SQL Server
IDERA Software
 
PPTX
Oracle Database In-Memory & Multitenant - TROUG Days'16 Istanbul
Mahir M. Quluzade
 
PDF
Oracle Database InMemory
Jorge Barba
 
PDF
Adding real time reporting to your database oracle db in memory
Zohar Elkayam
 
PDF
Oracle Database In-Memory Option for ILOUG
Zohar Elkayam
 
PPTX
SQL 2014 In-Memory OLTP
Amber Keyse
 
PPTX
What_to_expect_from_oracle_database_12c
Maria Colgan
 
PPT
Les 18 space
Femi Adeyemi
 
PPTX
An introduction to SQL Server in-memory OLTP Engine
Krishnakumar S
 
PPTX
SQL Server 2014 Extreme Transaction Processing (Hekaton) - Basics
Tony Rogerson
 
PDF
Intro to column stores
Justin Swanhart
 
PPTX
DBA Commands and Concepts That Every Developer Should Know - Part 2
Alex Zaballa
 
PPTX
DBA Commands and Concepts That Every Developer Should Know - Part 2
Alex Zaballa
 
Sloupcové uložení dat a použití in-memory technologií u řešení Exadata
MarketingArrowECS_CZ
 
Oracle Database In-Memory Meets Oracle RAC
Markus Michalewicz
 
Oracle Database in-Memory Overivew
Maria Colgan
 
Oracle in-Memory Column Store for BI
Franck Pachot
 
GLOC Keynote 2014 - In-memory
Connor McDonald
 
Oracle12c Database in-memory Data Sheet
Oracle
 
Oracle DB In-Memory technologie v kombinaci s procesorem M7
MarketingArrowECS_CZ
 
Geek Sync I Need for Speed: In-Memory Databases in Oracle and SQL Server
IDERA Software
 
Oracle Database In-Memory & Multitenant - TROUG Days'16 Istanbul
Mahir M. Quluzade
 
Oracle Database InMemory
Jorge Barba
 
Adding real time reporting to your database oracle db in memory
Zohar Elkayam
 
Oracle Database In-Memory Option for ILOUG
Zohar Elkayam
 
SQL 2014 In-Memory OLTP
Amber Keyse
 
What_to_expect_from_oracle_database_12c
Maria Colgan
 
Les 18 space
Femi Adeyemi
 
An introduction to SQL Server in-memory OLTP Engine
Krishnakumar S
 
SQL Server 2014 Extreme Transaction Processing (Hekaton) - Basics
Tony Rogerson
 
Intro to column stores
Justin Swanhart
 
DBA Commands and Concepts That Every Developer Should Know - Part 2
Alex Zaballa
 
DBA Commands and Concepts That Every Developer Should Know - Part 2
Alex Zaballa
 
Ad

More from pasalapudi123 (9)

PDF
Editioning use in ebs
pasalapudi123
 
PDF
Dmz aa aioug
pasalapudi123
 
PDF
Ebs12.2 online patching(aioug_aug2015)
pasalapudi123
 
PDF
Ebs upgrade-to-12.2 technical-upgrade_best_practices(aioug-aug2015)
pasalapudi123
 
PDF
Oracle12c flex asm_flexcluster - Y V RAVI KUMAR
pasalapudi123
 
PDF
Oracle12c data guard farsync and whats new - Nassyam Basha
pasalapudi123
 
PDF
Oracle database 12c introduction- Satyendra Pasalapudi
pasalapudi123
 
PDF
Dba to data scientist -Satyendra
pasalapudi123
 
PDF
Oracle 12c Application development
pasalapudi123
 
Editioning use in ebs
pasalapudi123
 
Dmz aa aioug
pasalapudi123
 
Ebs12.2 online patching(aioug_aug2015)
pasalapudi123
 
Ebs upgrade-to-12.2 technical-upgrade_best_practices(aioug-aug2015)
pasalapudi123
 
Oracle12c flex asm_flexcluster - Y V RAVI KUMAR
pasalapudi123
 
Oracle12c data guard farsync and whats new - Nassyam Basha
pasalapudi123
 
Oracle database 12c introduction- Satyendra Pasalapudi
pasalapudi123
 
Dba to data scientist -Satyendra
pasalapudi123
 
Oracle 12c Application development
pasalapudi123
 
Ad

Recently uploaded (20)

PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 

12c In Memory Management - Saurabh Gupta

  • 2. Oracle Database 12c In-Memory Saurabh K. Gupta Database Product Management
  • 3. Who am I? • Principal Technologist, Database Product Management • Author of “Oracle Advanced PL/SQL Developer Professional Guide”, Technical Reviewer, blogger • Experience in Oracle Databases, design, development and administration, High Availability solutions, Exadata Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 3
  • 4. Oracle Database In-Memory Goals Real Time Accelerate OLTP Analytics No Changes to Applications Exploit latest generation hardware Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | CPU 100x 2x
  • 5. Become a Real-Time Enterprise • Data-Driven • Rapidly make decisions based on real-time data • Agile AGILE DATA-DRIVEN • Respond quickly to change • Efficient • Continually improve processes and profitability Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 5 EFFICIENT
  • 6. Row Format Databases vs. Column Format Databases Row Transactions run faster on row format – Example: Insert or query a sales order – Fast processing few rows, many columns SALES Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Column Analytics run faster on column format – Example : Report on sales totals by region – Fast accessing few columns, many rows SALES 6
  • 7. Row Format Databases vs. Column Format Databases Row Insert a new sales order on row format – One row insert = FAST SALES INSERT Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 7 Column Insert a new sales order in Column Format – Many column inserts = S L O W SSAtoLErSes INSERT INSERT INSERT INSERT Until Now Must Choose One Format and Suffer Tradeoffs
  • 8. Breakthrough: Dual Format Database • BOTH row and column formats for same table • Simultaneously active and transactionally consistent Memory Memory SALES SALES • Analytics reporting use new in-memory Column format • OLTP uses proven row format Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 8 Row Format Column Format
  • 9. OLTP is Slowed Down by Analytic Indexes Insert rate decreases as number of indexes increases Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
  • 10. Column Store Replaces Analytic Indexes • Fast analytics on any columns • Better for unpredictable analytics • Less tuning administration Table 1 – 3 OLTP Indexes In-Memory Column Store • Column Store not persistent so update cost is much lower • OLTP batch run faster Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 10
  • 11. Oracle In-Memory Requires Zero Application Changes Full Functionality - No restrictions on SQL Easy to Implement - No migration of data Fully Compatible - All existing applications run unchanged Fully Multitenant - Oracle In-Memory is Cloud Ready Uniquely Achieves All In-Memory Benefits With No Application Changes Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 11
  • 12. Program Agenda Configuring the In-Memory Column Store Populating the In-Memory Column Store Querying the In-Memory Column Store Monitoring the In-Memory Column Store Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 12
  • 13. Configuring : In-Memory Column Store System Global Area SGA Buffer Cache Shared Pool Redo Buffer Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Large Pool Other shared Memory Components In-Memory Area
  • 14. Configuring : In-Memory Column Store • Controlled by INMEMORY_SIZE parameter •Minimum size of 100MB • SGA_TARGET must be large SELECT * FROM V$SGA; NAME VALUE ------------------ --------- enough to accommodate • Static Pool Fixed Size 2927176 Variable Size 570426808 Database Buffers 4634022912 Redo Buffers 13848576 In-Memory Area 1024483648 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
  • 15. Program Agenda Configuring the In-Memory Column Store Populating the In-Memory Column Store Querying the In-Memory Column Store Monitoring the In-Memory Column Store Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 15
  • 16. Oracle In-Memory Columnar Technology • Pure in-memory column format • Not persistent, and no logging • Quick to change data: fast OLTP • 2x to 20x compression Pure In-Memory Columnar • Enabled at table or partition level • Available on all hardware platforms Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 16 SALES
  • 17. Populating : In-Memory Column Store • Populate is the term used to bring data into the In-Memory column store • Populate is used instead of load because load is commonly used to mean inserting new data into the database • Populate doesn’t bring new data into the database, it brings existing data into memory and formats it in an optimized columnar format • Population is completed by a new set of background processes – ORA_W001_orcl – Number of processes controlled by INMEMORY_MAX_POPULATE_SERVERS Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 17
  • 18. Populating : In-Memory Column Store • New INMEMORY ATTRIBUTE • Following segment types are eligible • Tables • Partitions ALTER TABLE sales INMEMORY; ALTER TABLE sales NO INMEMORY; • Subpartition • Materialized views • Following segment types not eligible • IOTs • Hash clusters • Out of line LOBs Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | CREATE TABLE customers …… PARTITION BY LIST (PARTITION p1 …… INMEMORY, (PARTITION p2 …… NO INMEMORY); Pure OLTP Features
  • 19. Populating : In-Memory Column Store • Possible to populate only certain columns from a table or partition • Order in which objects are populated controlled by ALTER TABLE sales INMEMORY NO INMEMORY (PROD_ID); PRIORITY subclause • Critical, high, medium, low • Default – none (populate on first access) • Does not control the speed of population Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | CREATE TABLE orders (c1 number, c2 varchar(20), c3 number) INMEMORY PRIORITY CRITICAL NO INMEMORY (c1);
  • 20. Populating : In-Memory Column Store • Objects compressed during population • New compression techniques • Focused on scan performance ALTER MATERIALIZED VIEW mv1 INMEMORY MEMCOMPRESS FOR QUERY; • Controlled by MEMCOMPRESS subclause • Multiple levels of compression • Possible to use a different level for different partitions in a table Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | CREATE TABLE trades (Name varchar(20), Desc varchar(200)) INMEMORY MEMCOMPRESS FOR DML(desc);
  • 21. Populating : In-Memory Column Store • Different levels • FOR DML Use on tables or partitions with very active DML activity • FOR QUERY CREATE TABLE ORDERS …… PARTITION BY RANGE …… (PARTITION p1 …… INMEMORY NO MEMCOMPRESS PARTITION p2 …… INMEMORY MEMCOMPRESS FOR DML, Default mode for most tables • FOR CAPACITY For less frequently accessed segments • Easy to switch levels as part of ILM strategy Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | PARTITION p3 …… INMEMORY MEMCOMPRESS FOR QUERY, : PARTITION p200 …… INMEMORY MEMCOMPRESS FOR CAPACITY );
  • 22. Identifying : Tables With INMEMORY Attribute • New INMEMORY column in *_TABLES dictionary tables • INMEMORY is a segment attribute SELECT table_name, inmemory FROM USER_TABLES; TABLE_NAME INMEMORY • USER_TABLESdoesn’t display Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | ------------ -------- CHANNELS DISABLED COSTS CUSTOMERS DISABLED PRODUCTS ENABLED SALES TIMES DISABLED segment attributes for logical objects • Both COSTS SALES are partitioned = logical objects • INMEMORY attribute also reported in *_TAB_PARTITIONS
  • 23. Identifying : Tables With INMEMORY Attribute • New view v$IM_SEGMENTS • Indicate: • Objects populated in memory • Current population status SELECT segment_name name, population_status status FROM v$IM_SEGMENTS; • Can also be used to determine compression ratio achieved Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | NAME STATUS ------------ -------- PRODUCTS COMPLETED SALES STARTED
  • 24. Oracle Compression Advisor And In-Memory • Easy way to determine memory requirements • Use DBMS_COMPRESSION • Applies MEMCOMPRESS to sample set of data from a table • Returns estimated compression ratio Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
  • 25. Oracle In-Memory Advisor • New In-Memory Advisor • Analyzes existing DB workload via AWR ASH repositories • Provides list of objects that would benefit most from being populated into IM column store Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
  • 26. Program Agenda Configuring the In-Memory Column Store Populating the In-Memory Column Store Querying the In-Memory Column Store Monitoring the In-Memory Column Store Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 26
  • 27. Why is an In-Memory scan faster than the buffer cache? SELECT COL4 FROM MYTABLE; X X Buffer Cache Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 27 X X X RESULT Row Format
  • 28. Why is an In-Memory scan faster than the buffer cache? SELECT COL4 FROM MYTABLE; IM Column Store RESULT Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 28 Column Format RESULT X X X X
  • 29. Oracle In-Memory Column Store Storage Index • Each column is the made up of multiple column units • Min / max value is recorded for each column unit in a storage index Example: Find sales from stores with a store_id of 8 or higher Memory Min 1 Max 3 Min 4 • Storage index provides partition pruning like performance for ALL queries Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 29 SALES Column Format Max 7 Min 8 Max 12 Min 13 Max 15
  • 30. Orders of Magnitude Faster Analytic Data Scans CPU PROMO_ID Example: Find all sales With PROMO_ID 9999 Memory • Each CPU core scans local in-memory columns • Scans use super fast SIMD vector instructions Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 30 Load multiple PROMO_ID values Vector Compare all values an 1 cycle 9999 9999 9999 9999 VECTOR REGISTER • Originally designed for graphics science • Billions of rows/sec scan rate per CPU core • Row format is millions/sec
  • 31. Identifying : INMEMORY Table Scan • Optimizer fully aware • Cost model adapted to consider INMEMORY scan • New access method TABLE ACCESS IN MEMORY FULL • Can be disabled via new parameter • INMEMORY_QUERY Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
  • 32. Identifying : INMEMORY Table Scan • NEWSession level statistics • Best way to determine if In-Memory was use • Best way to measure the benefits of In-Memory scan Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
  • 33. Joining and Combining Data Also Dramatically Faster • Converts joins of data in multiple tables into fast column scans Example:Find all orders placed on Christmas eve DATE_DIM LINEORDER Datekey is 24122013 Date DateKey • Joins tables 10x faster Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 33 DateKey Type=d.d_date='December 24, 2013' Amount Sum
  • 34. Identifying : INMEMORY Joins • Bloom filters enable joins to be converted into fast column scans • Tried and true technology originally released in 10g • Same technique used to offload joins on Exadata Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
  • 35. Multiple bloom filter • Multi-table joins are common in analytic queries • Possible to apply multiple bloom filters to the fact table due to sophisticated Select d.d_year, s.s_nation, sum(lo_revenue - lo_supplycost) From LINEORDER l, DATE_DIM d, PART p, SUPPLIER s Where l.lo_orderdate = d.d_datekey And l.lo_partkey = p.p_partkey Optimizer • Simultaneously joining to all of the dimension tables while scanning the fact table Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | And l.lo_suppkey = s.s_suppkey And p.p_mfgr= 'MFGR#12’ And s.s_region = 'AMERICA’ Group by d.d_year, s.s_nation Order by d.d_year, s.s_nation;
  • 36. Multiple Bloom Filter Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
  • 37. In-Memory Aggregation • Dynamically creates in-memory report outline • Then report outline filled-in during fast fact scan Example: Report sales of footwear in outlet stores Sales Products In-Memory Report Outline Footwear $ • Reports run much faster without predefined cubes Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 37 Stores Outlets Footwear Outlets Sales $$ $ $$$
  • 38. Identifying : INMEMORY Aggregation Hash Group By MMoonniittoorriinngg Monitoring tthhee the IInn--In-MMeemmoorryy CCoolluummnn SSttoorree Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Vector Group By
  • 39. Program Agenda Configuring the In-Memory Column Store Populating the In-Memory Column Store Querying the In-Memory Column Store Monitoring the In-Memory Column Store Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 39
  • 40. New In-Memory Central Screen in EM In-Memory Area (GB) :4.00 In-Memory Area Used (GB) :1.79 Object map integrated with 12c heatmap feature New In-Memory Central Screen in EM Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
  • 41. New In-Memory Central Screen in EM Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
  • 42. New In-Memory Central Screen in EM Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
  • 43. New In-Memory Entries in CPU Wait Class Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
  • 44. New In-Memory Entries in CPU Wait Class Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
  • 45. In-Memory Query in SQL Monitor Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |