oracle in-memory and all that - wordpress.com...sep 07, 2016  · our in-memory journey 5 oracle 11g...

18
Oracle In-Memory and all that 1 Fuhrer Alain, DBA Team-leader, [email protected] Andreas Wyssenbach, Senior DBA [email protected] September 2016

Upload: others

Post on 16-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel

Oracle In-Memory

and all that

1

Fuhrer Alain, DBA Team-leader, [email protected] Wyssenbach, Senior DBA [email protected] 2016

Page 2: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel

Agenda

1.Swiss Mobiliar in a nut shell

2.Use case

3. Results

4. Q & A

2

Page 3: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel

Swiss Mobiliar in a nut shell

The most personal insurer in Switzerland

3

Oldest private insurance company in CH

Working as a mutual insurance company

since its foundation in 1826

Prime volume: 3.5 billions CHF

About 1.7 million customers = every 3rd CH-household

Close distance to customers guaranteed:

79 general agencies with their own claims departement

at about 160 locations

Employees in CH / FL: more then 4’400, 325 trainees

Page 4: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel

Swiss Mobiliar’s IT mission statement

«Deploy and Run innovative technologies for efficient business processes»

Systems: iOS, Linux, Windows and z/OS

5’000 notebooks, 1’800 iPhones, 300 iPads

DBMS: Oracle, DB/2, IMS, MS SQL Server, Neo4j

Standard-SW (ArcGIS, SAP, BO, Siebel, COR Life etc.)

Majority of business functions provided

by home-grown applications

4

Page 5: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel

Our In-Memory journey

5

Oracle 11g R2

rows only

rely on indexes

rely on mat-views

rely on partitioning

rely on parallel execution

Oracle 12c β

added In-Memory

tested compression

tested robustness

tested usability

tested performance

Oracle 12c

gained practical

experience

gained performance

with bundle patches

Oracle 12.2 β

tested again

remarkable improvements

remarkable new features

2014 2015 2016

Page 6: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel

Use case – why is it relevant to us?

6

Insurance is about offering products and managing risk.

We‘ve created our own application to keep track of information.

Our teams in product management and risk management use it.

We separated data platform (Oracle) and analytics(SAS).

The data platform has always been demanding:

Simple yet flexible data model

Increasing data volume

Increasing complexity of analytic queries

We track resource consumption using our Performance DWH.

Business data

used for analytics

Performance data

used by IT operations

Page 7: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel

Use case – logical view

7

Anybody needs information about their:

customers, contracts

products, tariffs, contractual items

contract details

including their entire history.

Customers

Contracts

Contract details

Contractualitems

Products Tariffs

Typical questions:

Which contractual items have been applicable

in a given period of time?

What is the benefit / impact when changing a tariff?

Anybody wants flexibility when adding / changing

offerings (insurance products, services)

Over time the complexity of analytic queries rises:

more and increasingly complex filtering

comparison of data sets on the fly

more data sources to be joined

Page 8: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel

Use case – technical view

8

One X86 server

• four CPUs

• 32 cores in total

• 3 TB RAM

Table 1

6k records

Table 2

25M records

Table 3

545M records

1:n

1:n

Inner joins on less than 10 tables

30+ GB on disk

15 GB In-

Memory

Table 4

6+ G records

partition 0001o..m

o..m

50+ outer joins to partition(s)

( even more needed )

130+ GB on disk

19 GB In-Memory

partition nnnn

partition 0001partition 0001

partition 2582

partition nnnnpartition 0137

partition 0002partition 0001

Measurement:

• Use 7 different

periods for

business query

• Average

elapsed time

Page 9: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel

Example: inner join (3 tables) & outer joins (55 tables) 150k result set

9

Execution plan: 271 lines; no visible parsing effort

Partition pruning in action

I/O 23 GB & idle buffer cacheDOP=16:26sec elapsed & 425 sec DB time

Page 10: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel

Advances since 12.1 – push-down of COUNT() and other functions

10

0.00

0.50

1.00

1.50

2.00

2.50

1 2 4 8 16 32

Oracle In-Memory - COUNT(*) for varying DOP inner joins only

12.1 July 2016 bundle patch 12.2 BETA3

elapsed time

in seconds

degree of parallelismDOP = #cores

Page 11: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel

Advances since 12.1 – push-down of COUNT() and other functions

11

0.10

1.00

10.00

100.00

(3,0) (3,5) (3,10) (3,15) (3,20) (3,25) (3,30) (3,35) (3,40) (3,45) (3,50) (3,55)

Oracle In-Memory - COUNT(*), DOP = 16inner joins AND increasing number of outer joins to 100k to 140M records

12.1 July 2016 bundle patch 12.2 BETA3

elapsed time

in seconds

joined tables (inner joins, outer joins)

Page 12: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel

Advances since 12.1 – push-down of COUNT() and other functions

12

0.1

1

10

100

1000

1 2 4 8 16 32

Oracle In-Memory - COUNT(*) for varying DOPinner joins AND 55 outer joins to 100k to 140M records

12.1 Dec 2015 12.1 July 2016 bundle patch 12.2 BETA3

elapsed time

in seconds

degree of parallelism

DOP = #cores

Page 13: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel

Advances since 12.1 – join-efficiency

13

0.00

2.00

4.00

6.00

8.00

10.00

12.00

14.00

1 2 4 8 16 32

Oracle In-Memory – FULL SCAN for varying DOP inner joins only

12.1 July 2016 bundle patch 12.2 BETA3

elapsed time

in seconds

degree of parallelism DOP = #cores

Page 14: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel

Advances since 12.1 – join-efficiency

14

1.00

10.00

100.00

(3,0) (3,5) (3,10) (3,15) (3,20) (3,25) (3,30) (3,35) (3,40) (3,45) (3,50) (3,55)

Oracle In-Memory – FULL SCAN, DOP = 16inner joins AND increasing number of outer joins to 100k to 140M records

12.1 July 2016 bundle patch 12.2 BETA3

elapsed time

in seconds

joined tables (inner joins, outer joins)

Page 15: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel

Advances since 12.1 – join-efficiency

15

10

100

1000

1 2 4 8 16 32

Oracle In-Memory - FULL SCANtab1: 6k rows / tab2: 25M rows / tab3: 545M rows / outer-joins: 100k to 140M rows

12.2 Dec 2015 12.1 July 2016 bundle patch 12.2 BETA3

elapsed time

in seconds

degree of parallelism

DOP = #cores

Page 16: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel

Our next stop on the Oracle In-Memory journey

16

Remarkable performance improvements observed

• PUSH-DOWN ist great fpr COUNT(), SUM(), MIN(), MAX()

• Vector transformation in 12.1 used to stress TEMP. In 12.2 BETA we had no such issues.

Remarkable features, that we still haven‘t embraced in beta testing

• Join groups to gain even higher join performance

• Detection of expressions by In-memory and reduction of CPU load

• Information lifecycle management for In-Memory

Remarkable features that fit our architecture needs

• In-Memory within a PDB

• AWR per PDB

• In-Memory on a remote database

Page 17: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel

Summary

17

I glous nid scho fertig.

I can‘t believe it finished already.

Page 18: Oracle In-Memory and all that - WordPress.com...Sep 07, 2016  · Our In-Memory journey 5 Oracle 11g R2 rows only rely on indexes rely on mat-views rely on partitioning rely on parallel