Oracle Database In-Memory Overview • Maria Colgan • Master Product Manager • Mission Critical Database Technologies • April 2017 Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Safe Harbor Statement
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | What is Database In-Memory 3
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Database In-Memory Goals 4 Real-Time Analytics Trivial to Implement No Application Changes Not Limited by Memory 100X Accelerate Mixed Workload AnalyticsTransactions Run analytics on Operational Systems Enable Real-Time Business Decisions Real-Time Analytics 100X Risk-Free Proven Scale-Out, Availability, Security
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Row Format Databases vs. Column Format Databases Rows Stored Contiguously Transactions run faster on row format – Example: Query or Insert a sales order – Fast processing few rows, many columns Columns Stored Contiguously Analytics run faster on column format – Example : Report on sales totals by region – Fast accessing few columns, many rows SALES SALES 5 Until Now Must Choose One Format and Suffer Tradeoffs QueryQuery Query
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Breakthrough: Dual Format Database • BOTH row and column formats for same table • Simultaneously active and transactionally consistent • Analytics & reporting use new in-memory Column format • OLTP uses proven row format 6 Buffer Cache New In-Memory Column Store SALES SALES Row Format Column Format SALES
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Oracle In-Memory Columnar Technology • Pure in-memory column format • Not persistent, and no logging • Quick to change data: fast OLTP • Enabled at table or partition • Only active data in-memory • 2x to 20x compression typical • Available on all hardware platforms 7 SALES SALES Pure In-Memory Columnar
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Orders of Magnitude Faster Analytic Data Scans • Each CPU core scans local in-memory columns • Scans use super fast SIMD vector instructions • Originally designed for graphics & science • Billions of rows/sec scan rate per CPU core • Row format is millions/sec 8 Memory Example: Find sales in California region > 100x Faster VectorRegister Load multiple region values Vector Compare all values an 1 cycle CPU CA CA CA CA REGION
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | • Speed of memory • Scan and Filter only the needed Columns • Vector Instructions Improvements to All Aspects of Analytic Query 9 Data Scans In-Memory Aggregation •Create In-Memory Report Outline that is Populated during Fast Scan •Runs Reports Instantly Joins •Convert Star Joins into 10X Faster Column Scans •Search large table for values that match small table HASH JOIN Table A Table B VectorRegister Load multiple region values Vector Compare all values an 1 cycle CPU CA CA CA CA
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | • Complex OLTP is Slowed by Analytic Indexes • Inserting one row into a table requires updating 10-20 analytic indexes: Slow! • Column Store Replaces Analytic Indexes • Fast analytics on any columns • Column Store not persistent so update cost is much lower 10 Database In-Memory Accelerates Mixed Workloads Table 1 – 3 OLTP Indexes 10 – 20 Analytic Indexes REPLACE
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Database In-Memory Scales to Any Size 11 Scale-Up •Scale-Up on large SMPs •NUMA Optimized •Scale-Out Across Servers to Grow Memory and CPUs •In-Memory Queries Parallelized Across Servers Scale-Out Combine with Flash and Disk •Easily place data on most cost effective tier •Simultaneously Achieve: •Speed of DRAM •I/Os of Flash •Cost of Disk DISK Cold Data DRAM Hottest Data PCI FLASH Active Data
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 12 RAC ASM RMAN Data Guard & GoldenGate • Pure In-Memory format does not change Oracle’s storage format, logging, backup, recovery, etc. • All Oracle’s proven availability technologies work transparently • Protection from all failures • Node, site, corruption, human error, etc. Database In-Memory: Industrial Strength Availability
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | • Similar to storage mirroring • Duplicate in-memory columns on another node • Enabled per table/partition • E.g. only recent data • Application transparent • Downtime eliminated by using duplicate after failure 13 Only Available on Engineered Systems Database In-Memory: Unique Fault Tolerance
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Database In-Memory: Trivial to Implement 14 Full Functionality No SQL restrictions 100% Compatible No application changes No data migration Easy to Deploy Easy to Use No complex setup 1. Set column store size 2. Declare In-Memory tables
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | What’s New 15
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | SPARC M7 Software in Silicon • Traditional DB algorithms too complex for chips • Big Change: In-memory algorithms are much simpler • 5 years ago Oracle initiated a revolutionary project –Build fastest ever microprocessor • Most processing cores (32) and concurrent threads (256) • Fastest Memory Bandwidth (160 GB/sec) –Add In-Memory DB operations directly on chip • Only high-volume CPU with native SQL optimizations 16
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Database Algorithms Natively Implemented in SPARC CPU 17 Software-in-Silicon adds revolutionary new capabilities: • SQL in Silicon - Database In-Memory Acceleration Engines (DAX) • Capacity in Silicon - Real-time decompression of in-memory data • Security in Silicon - Fine-grained low-overhead memory protection
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | SQL in Silicon: Database In-Memory Acceleration Engines • SIMD Vectors instructions are fast, but were designed for graphics, not database • New SPARC M7 chip has 32 optimized database acceleration engines (DAX) built on chip • Independently process streams of columns – E.g. find all values that match ‘California’ – Up to 170 Billion rows per second! • Like adding 32 additional specialized cores to chip – Using less than 1% of chip space 18 Core Shared Cache Core Core Core DB Accel DB Accel DB Accel DB Accel SPARC M7
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Capacity in Silicon: Decompression Engines • Compression is key to putting more data in-memory • Decompression is far more import for databases than compression – Data is loaded once, queried many times • Bit pattern decompression in normal cores is slow – 64 CPU cores needed to decompress at full memory speed • SPARC M7 adds 32 optimized decompress engines – Run bit-pattern decompress at memory speed 19 Doubles Memory Capacity
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Silicon Secured Memory: Fine Grained Memory Protection • Database In-memory places terabytes of data in memory – More vulnerable to corruption by bugs/attacks than storage • SPARC M7 locks memory as it is allocated so only the owner can access it – Hidden “color” bits added to pointers (key), and content (lock) – Pointer color (key) must match content color or program is aborted – Hardware support eliminates performance impact • Helps prevent access off end of structure, stale pointer access, malicious attacks, etc. plus improves developer productivity 20 Memory Pointers Memory Content STOP
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | What’s New in 12.2 21
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | What’s new in 12.2 for Database In-Memory 2X Faster Joins 5X Faster Expressions Real-Time Analytics Automation Dynamic Data Movement Between Storage & Memory Massive Capacity In-Memory on Exadata Flash Mixed Workload Active Data Guard Support Multi-model Native support for JSON Data type 22 {} JSON Column
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | • Analytic queries have complex joins with no filter predicates specified • Join Group specifies columns used to join tables – Column share compression dictionary – Joins occur on dictionary values rather than data • Enables 2-3x faster join processing Real-Time Analytics: Faster In-Memory Joins Sales VEHICLENAME Example: Find sales price of each Vehicle SalesVehicle NAME is join column NAME CREATE INMEMORY JOIN GROUP V_name_jg (VEHICLES(NAME),SALES(NAME)); 23
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | • Analytic queries contain complex expressions – Originally evaluated for every row • Expressions pre-computed and cached in-memory –User defined via virtual columns –Or expressions automatic detected • All In-Memory optimizations apply • 3-5x faster complex queries Real-Time Analytics: In-Memory Expressions Net = Price + Price * Tax In-Memory Column Store Sales Example: Compute total sales price Tax Price 24 Price Price+PriceXTaxPrice+Price*Tax
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | • Real-time analytics with no impact on production database • Make productive use of standby database resources • Can populate different data from production database – Use new DISTRIBUTE BY SERVICE to determine where to populate a table – Increase total columnar capacity 1 Month In-Memory Mixed Workload: In-Memory on Active Data Guard Production 25 Standby 1 Year In-Memory
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Massive Capacity: IMC Format in Columnar Flash Cache • In-Memory format now used in Smart Columnar Flash Cache – Enables in-memory optimizations on data in Exadata flash – E.g. multiple column values evaluated in single vector instruction • In-memory performance seamlessly extended from DB node DRAM memory to 10x larger flash in storage – Huge advantage over all-flash arrays and other in-memory DBs In-Memory Columnar scans 26 In-Flash Columnar scans
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | • Full JSON documents populated using an optimized binary format • Additional expressions can be created on JSON columns (e.g. JSON_VALUE) & stored in column store • Queries on JSON content or expressions automatically directed to In-Memory format • E.g. Find movies where movie.name contains “Jurassic” • 60x performance gains observed Multi-Model Analytics: In-Memory JSON Relational In-Memory Colum Store In-Memory Virtual Columns In-Memory JSON Format { "Theater":"AMC 15", "Movie":”Sully", "Time“:2016-09-09T18:45:00", "Tickets":{ "Adults":2 } } Relational Virtual JSON 27
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | • Heat map tracks data access frequency • Policies can be defined to • Bring data into the IM column store • Increase compression levels as data cools • Evict cold data from IM column store 28 Sales_Q3 Sales_Q2 Sales_Q4 In-Memory Column Store Sales _Q1 Automation: In-Memory Data Auto Population Policies
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Population Performance: In-Memory Fast-Start • IM column format persisted to storage • In-Memory column store contents checkpointed to secure file lob on populate • When DB restarts population is faster as population process reads the column format directly from storage • Faster restore (2-5x) of column store since no need to reformat data DBFILE1 Table Index Table Table Index DBFILE2SALES TABLESPACE FAST START TABLESPACE Fast Start Data 29 In-Memory Column Store Buffer Cache
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | When and How Should I Use In-Memory 30
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Getting The Most From In-Memory • Fast cars speed up travel, not meetings • In-Memory speeds up analytic data access, not: – Network round trips, logon/logoff – Parsing, PL/SQL, complex functions – Data processing (as opposed to access) • Complex joins or aggregations where not much data is filtered before processing – Load and select once – Staging tables, ETL, temp tables Understand Where it Helps 31 Know your bottleneck!
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Getting The Most From In-Memory • Avoid stop and go traffic – Process data in sets of rows in the Database – Not one row at a time in the application • Plan ahead, take shortest route – Help the optimizer help you: Gather representative statistics using DBMS_STATS • Use all your cylinders – Enable parallel execution – In-Memory removes storage bottlenecks allowing parallelism to increase The Driver Matters 32
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | • Star-schema and pre-calculated KPIs • Improves performance of dash-boards • All or a subset of Foundation Layer • For time-sensitive analytics on 3rd normal form • Staging/ETL/Temp not good candidates • Write once, read once 33 Where to use In-Memory ODS ETL In-Memory Column Store SALES ReportingOLTP System • Enables real-time reporting directly on OLTP data • Speeds data extraction part of ETL process • Removes need for separate ODS In-Memory Column Store Reporting Data Warehouse Foundation LayerStaging Layer Performance Layer STAR SCHEMA Pre-Cal KPIs 3rd Normal Form
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Where can I get more information 34
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Join the Conversation 35 https://twitter.com/db_inmemory https://blogs.oracle.com/in-memory/ Related White Papers • Oracle Database In-Memory White Paper •Oracle Database In-Memory Aggregation Paper • When to use Oracle Database In-Memory • Oracle Database In-Memory Advisor Related Videos • In-Memory YouTube Channel • Managing Oracle Database In-Memory • Database In-Memory and Oracle Multitenant • Industry Experts Discuss Oracle Database In-Memory • Software on Silicon Any Additional Questions • Oracle Database In-Memory Blog https://www.facebook.com/OracleDatabase http://www.oracle.com/goto/dbim.html Additional Resources https://sqlmaria.com
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Q & A If you have more questions later, feel free to ask 36

Oracle Database in-Memory Overivew

  • 1.
    Oracle Database In-Memory Overview •Maria Colgan • Master Product Manager • Mission Critical Database Technologies • April 2017 Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
  • 2.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Safe Harbor Statement
  • 3.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | What is Database In-Memory 3
  • 4.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | Oracle Database In-Memory Goals 4 Real-Time Analytics Trivial to Implement No Application Changes Not Limited by Memory 100X Accelerate Mixed Workload AnalyticsTransactions Run analytics on Operational Systems Enable Real-Time Business Decisions Real-Time Analytics 100X Risk-Free Proven Scale-Out, Availability, Security
  • 5.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | Row Format Databases vs. Column Format Databases Rows Stored Contiguously Transactions run faster on row format – Example: Query or Insert a sales order – Fast processing few rows, many columns Columns Stored Contiguously Analytics run faster on column format – Example : Report on sales totals by region – Fast accessing few columns, many rows SALES SALES 5 Until Now Must Choose One Format and Suffer Tradeoffs QueryQuery Query
  • 6.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | Breakthrough: Dual Format Database • BOTH row and column formats for same table • Simultaneously active and transactionally consistent • Analytics & reporting use new in-memory Column format • OLTP uses proven row format 6 Buffer Cache New In-Memory Column Store SALES SALES Row Format Column Format SALES
  • 7.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | Oracle In-Memory Columnar Technology • Pure in-memory column format • Not persistent, and no logging • Quick to change data: fast OLTP • Enabled at table or partition • Only active data in-memory • 2x to 20x compression typical • Available on all hardware platforms 7 SALES SALES Pure In-Memory Columnar
  • 8.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | Orders of Magnitude Faster Analytic Data Scans • Each CPU core scans local in-memory columns • Scans use super fast SIMD vector instructions • Originally designed for graphics & science • Billions of rows/sec scan rate per CPU core • Row format is millions/sec 8 Memory Example: Find sales in California region > 100x Faster VectorRegister Load multiple region values Vector Compare all values an 1 cycle CPU CA CA CA CA REGION
  • 9.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | • Speed of memory • Scan and Filter only the needed Columns • Vector Instructions Improvements to All Aspects of Analytic Query 9 Data Scans In-Memory Aggregation •Create In-Memory Report Outline that is Populated during Fast Scan •Runs Reports Instantly Joins •Convert Star Joins into 10X Faster Column Scans •Search large table for values that match small table HASH JOIN Table A Table B VectorRegister Load multiple region values Vector Compare all values an 1 cycle CPU CA CA CA CA
  • 10.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | • Complex OLTP is Slowed by Analytic Indexes • Inserting one row into a table requires updating 10-20 analytic indexes: Slow! • Column Store Replaces Analytic Indexes • Fast analytics on any columns • Column Store not persistent so update cost is much lower 10 Database In-Memory Accelerates Mixed Workloads Table 1 – 3 OLTP Indexes 10 – 20 Analytic Indexes REPLACE
  • 11.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | Database In-Memory Scales to Any Size 11 Scale-Up •Scale-Up on large SMPs •NUMA Optimized •Scale-Out Across Servers to Grow Memory and CPUs •In-Memory Queries Parallelized Across Servers Scale-Out Combine with Flash and Disk •Easily place data on most cost effective tier •Simultaneously Achieve: •Speed of DRAM •I/Os of Flash •Cost of Disk DISK Cold Data DRAM Hottest Data PCI FLASH Active Data
  • 12.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | 12 RAC ASM RMAN Data Guard & GoldenGate • Pure In-Memory format does not change Oracle’s storage format, logging, backup, recovery, etc. • All Oracle’s proven availability technologies work transparently • Protection from all failures • Node, site, corruption, human error, etc. Database In-Memory: Industrial Strength Availability
  • 13.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | • Similar to storage mirroring • Duplicate in-memory columns on another node • Enabled per table/partition • E.g. only recent data • Application transparent • Downtime eliminated by using duplicate after failure 13 Only Available on Engineered Systems Database In-Memory: Unique Fault Tolerance
  • 14.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | Database In-Memory: Trivial to Implement 14 Full Functionality No SQL restrictions 100% Compatible No application changes No data migration Easy to Deploy Easy to Use No complex setup 1. Set column store size 2. Declare In-Memory tables
  • 15.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | What’s New 15
  • 16.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | SPARC M7 Software in Silicon • Traditional DB algorithms too complex for chips • Big Change: In-memory algorithms are much simpler • 5 years ago Oracle initiated a revolutionary project –Build fastest ever microprocessor • Most processing cores (32) and concurrent threads (256) • Fastest Memory Bandwidth (160 GB/sec) –Add In-Memory DB operations directly on chip • Only high-volume CPU with native SQL optimizations 16
  • 17.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | Database Algorithms Natively Implemented in SPARC CPU 17 Software-in-Silicon adds revolutionary new capabilities: • SQL in Silicon - Database In-Memory Acceleration Engines (DAX) • Capacity in Silicon - Real-time decompression of in-memory data • Security in Silicon - Fine-grained low-overhead memory protection
  • 18.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | SQL in Silicon: Database In-Memory Acceleration Engines • SIMD Vectors instructions are fast, but were designed for graphics, not database • New SPARC M7 chip has 32 optimized database acceleration engines (DAX) built on chip • Independently process streams of columns – E.g. find all values that match ‘California’ – Up to 170 Billion rows per second! • Like adding 32 additional specialized cores to chip – Using less than 1% of chip space 18 Core Shared Cache Core Core Core DB Accel DB Accel DB Accel DB Accel SPARC M7
  • 19.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | Capacity in Silicon: Decompression Engines • Compression is key to putting more data in-memory • Decompression is far more import for databases than compression – Data is loaded once, queried many times • Bit pattern decompression in normal cores is slow – 64 CPU cores needed to decompress at full memory speed • SPARC M7 adds 32 optimized decompress engines – Run bit-pattern decompress at memory speed 19 Doubles Memory Capacity
  • 20.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | Silicon Secured Memory: Fine Grained Memory Protection • Database In-memory places terabytes of data in memory – More vulnerable to corruption by bugs/attacks than storage • SPARC M7 locks memory as it is allocated so only the owner can access it – Hidden “color” bits added to pointers (key), and content (lock) – Pointer color (key) must match content color or program is aborted – Hardware support eliminates performance impact • Helps prevent access off end of structure, stale pointer access, malicious attacks, etc. plus improves developer productivity 20 Memory Pointers Memory Content STOP
  • 21.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | What’s New in 12.2 21
  • 22.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | What’s new in 12.2 for Database In-Memory 2X Faster Joins 5X Faster Expressions Real-Time Analytics Automation Dynamic Data Movement Between Storage & Memory Massive Capacity In-Memory on Exadata Flash Mixed Workload Active Data Guard Support Multi-model Native support for JSON Data type 22 {} JSON Column
  • 23.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | • Analytic queries have complex joins with no filter predicates specified • Join Group specifies columns used to join tables – Column share compression dictionary – Joins occur on dictionary values rather than data • Enables 2-3x faster join processing Real-Time Analytics: Faster In-Memory Joins Sales VEHICLENAME Example: Find sales price of each Vehicle SalesVehicle NAME is join column NAME CREATE INMEMORY JOIN GROUP V_name_jg (VEHICLES(NAME),SALES(NAME)); 23
  • 24.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | • Analytic queries contain complex expressions – Originally evaluated for every row • Expressions pre-computed and cached in-memory –User defined via virtual columns –Or expressions automatic detected • All In-Memory optimizations apply • 3-5x faster complex queries Real-Time Analytics: In-Memory Expressions Net = Price + Price * Tax In-Memory Column Store Sales Example: Compute total sales price Tax Price 24 Price Price+PriceXTaxPrice+Price*Tax
  • 25.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | • Real-time analytics with no impact on production database • Make productive use of standby database resources • Can populate different data from production database – Use new DISTRIBUTE BY SERVICE to determine where to populate a table – Increase total columnar capacity 1 Month In-Memory Mixed Workload: In-Memory on Active Data Guard Production 25 Standby 1 Year In-Memory
  • 26.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | Massive Capacity: IMC Format in Columnar Flash Cache • In-Memory format now used in Smart Columnar Flash Cache – Enables in-memory optimizations on data in Exadata flash – E.g. multiple column values evaluated in single vector instruction • In-memory performance seamlessly extended from DB node DRAM memory to 10x larger flash in storage – Huge advantage over all-flash arrays and other in-memory DBs In-Memory Columnar scans 26 In-Flash Columnar scans
  • 27.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | • Full JSON documents populated using an optimized binary format • Additional expressions can be created on JSON columns (e.g. JSON_VALUE) & stored in column store • Queries on JSON content or expressions automatically directed to In-Memory format • E.g. Find movies where movie.name contains “Jurassic” • 60x performance gains observed Multi-Model Analytics: In-Memory JSON Relational In-Memory Colum Store In-Memory Virtual Columns In-Memory JSON Format { "Theater":"AMC 15", "Movie":”Sully", "Time“:2016-09-09T18:45:00", "Tickets":{ "Adults":2 } } Relational Virtual JSON 27
  • 28.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | • Heat map tracks data access frequency • Policies can be defined to • Bring data into the IM column store • Increase compression levels as data cools • Evict cold data from IM column store 28 Sales_Q3 Sales_Q2 Sales_Q4 In-Memory Column Store Sales _Q1 Automation: In-Memory Data Auto Population Policies
  • 29.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | Population Performance: In-Memory Fast-Start • IM column format persisted to storage • In-Memory column store contents checkpointed to secure file lob on populate • When DB restarts population is faster as population process reads the column format directly from storage • Faster restore (2-5x) of column store since no need to reformat data DBFILE1 Table Index Table Table Index DBFILE2SALES TABLESPACE FAST START TABLESPACE Fast Start Data 29 In-Memory Column Store Buffer Cache
  • 30.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | When and How Should I Use In-Memory 30
  • 31.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | Getting The Most From In-Memory • Fast cars speed up travel, not meetings • In-Memory speeds up analytic data access, not: – Network round trips, logon/logoff – Parsing, PL/SQL, complex functions – Data processing (as opposed to access) • Complex joins or aggregations where not much data is filtered before processing – Load and select once – Staging tables, ETL, temp tables Understand Where it Helps 31 Know your bottleneck!
  • 32.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | Getting The Most From In-Memory • Avoid stop and go traffic – Process data in sets of rows in the Database – Not one row at a time in the application • Plan ahead, take shortest route – Help the optimizer help you: Gather representative statistics using DBMS_STATS • Use all your cylinders – Enable parallel execution – In-Memory removes storage bottlenecks allowing parallelism to increase The Driver Matters 32
  • 33.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | • Star-schema and pre-calculated KPIs • Improves performance of dash-boards • All or a subset of Foundation Layer • For time-sensitive analytics on 3rd normal form • Staging/ETL/Temp not good candidates • Write once, read once 33 Where to use In-Memory ODS ETL In-Memory Column Store SALES ReportingOLTP System • Enables real-time reporting directly on OLTP data • Speeds data extraction part of ETL process • Removes need for separate ODS In-Memory Column Store Reporting Data Warehouse Foundation LayerStaging Layer Performance Layer STAR SCHEMA Pre-Cal KPIs 3rd Normal Form
  • 34.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | Where can I get more information 34
  • 35.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | Join the Conversation 35 https://twitter.com/db_inmemory https://blogs.oracle.com/in-memory/ Related White Papers • Oracle Database In-Memory White Paper •Oracle Database In-Memory Aggregation Paper • When to use Oracle Database In-Memory • Oracle Database In-Memory Advisor Related Videos • In-Memory YouTube Channel • Managing Oracle Database In-Memory • Database In-Memory and Oracle Multitenant • Industry Experts Discuss Oracle Database In-Memory • Software on Silicon Any Additional Questions • Oracle Database In-Memory Blog https://www.facebook.com/OracleDatabase http://www.oracle.com/goto/dbim.html Additional Resources https://sqlmaria.com
  • 36.
    Copyright © 2016,Oracle and/or its affiliates. All rights reserved. | Q & A If you have more questions later, feel free to ask 36