SlideShare a Scribd company logo
Partitioning Your Oracle Data Warehouse 
– Just a Simple Task? 
Dani Schnider 
Principal Consultant 
Business Intelligence 
dani.schnider@trivadis.com 
Oracle Open World 2009, 
San Francisco 
BASEL BERN BRUGG LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
1
Dani Schnider 
 Principal Consultant und 
DWH/BI Lead Architect 
bei Trivadis in Zürich 
 Kursleiter für Trivadis-Kurse 
über Data Warehousing, 
SQL Optimierung und Oracle 
Warehouse Builder 
 Co-Autor des Buches «Data 
Warehousing mit Oracle» 
2014 © Trivadis 
2 
Partitioning Your Oracle Data Warehouse 
2009
Mit über 600 IT- und Fachexperten bei Ihnen vor Ort 
2014 © Trivadis 
11 Trivadis Niederlassungen mit 
über 600 Mitarbeitenden 
200 Service Level Agreements 
Mehr als 4'000 Trainingsteilnehmer 
Forschungs- und Entwicklungs-budget: 
CHF 5.0 / EUR 4 Mio. 
Finanziell unabhängig und 
nachhaltig profitabel 
Erfahrung aus mehr als 1'900 
Projekten pro Jahr bei über 800 
Kunden 
Stand 12/2012 
Hamburg 
Düsseldorf 
Frankfurt 
Freiburg 
München 
Wien 
Basel 
Bern Zürich 
Lausanne 
3 
Stuttgart 
Partitioning Your Oracle Data Warehouse 
2009 
3
AGENDA 
1. Partitioning Concepts 
2. The Right Partition Key 
3. Large Dimensions 
4. Partition Maintenance 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
4
Partitioning – The Basic Idea 
 Decompose tables/indexes into smaller pieces 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
5
Partitioning Methods in Oracle 
 Additionally: Interval Partitioning, Reference Partitioning, Virtual 
Column-Based Partitioning 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
6
Benefits of Partitioning 
Partition Pruning 
 Reduce I/O: Only relevant partitions have to be accessed 
Partition-Wise Joins 
 Full PWJ: Join two equi-partitioned tables (parallel or serial) 
 Partial PWJ: Join partitioned with non-partitioned table (parallel) 
Rolling History 
 Create new partitions in periodical intervals 
 Drop old partitions in periodical intervals 
Manageability 
 Backups, statistics gathering, compressing on individual partitions 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
7
AGENDA 
1. Partitioning Concepts 
2. The Right Partition Key 
3. Large Dimensions 
4. Partition Maintenance 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
8
Partition Methods and Partition Keys 
 Important questions for Partitioning: 
 Which tables should be partitioned? 
 Which partition method should be used? 
 Which partition key(s) should be used? 
 Partition key is important for 
 Query optimization (partition pruning, partition-wise 
2014 © Trivadis 
joins) 
 ETL performance (partition exchange, rolling 
history) 
 Typically in data warehouses 
 RANGE partitioning of fact tables on DATE 
column 
 But which DATE column? 
Partitioning Your Oracle Data Warehouse 
2009 
9
Practical Example 1: Airline Company 
 Flight bookings are stored in partitioned table 
 RANGE partitioning per month, partition key: booking date 
 Problem: Most of the reports are based on the flight date 
 Flights can be booked 11 months ahead 
 11 partitions must be read of one particular flight date 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
10
Practical Example 1: Airline Company 
 Solution: partition key flight date instead of booking date 
 Data is loaded into current and future partitions 
 Reports based on flight date read only one partition 
 Reports based on booking date must read 11 (small) partitions 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
11
Practical Example 1: Airline Company 
 Better solution: Composite RANGE-RANGE partitioning 
 RANGE partitioning on flight date 
 RANGE subpartitioning on booking date 
 More flexibility for reports on flight date and/or on booking date 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
12
Practical Example 2: International Bank 
 Account balance data of international customers 
 Monthly files of different locations (countries) 
 Correction files replace last delivery for the same month/country 
 Original approach 
 Technical load id for each combination of month/country 
 LIST partitioning on load id 
 Files are loaded in stage table 
 Partition exchange with current partition 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
13
Practical Example 2: International Bank 
 Problem: partition key load id is useless for queries 
 Queries are based on balance date 
2014 © Trivadis 
 Solution 
 RANGE partitioning on balance date 
 LIST subpartitions on country code 
 Partition exchange with subpartitions 
Partitioning Your Oracle Data Warehouse 
2009 
14
AGENDA 
1. Partitioning Concepts 
2. The Right Partition Key 
3. Large Dimensions 
4. Partition Maintenance 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
15
Partitioning in Star Schema 
2014 © Trivadis 
 Fact Table 
 Usually „big“ (millions to billions of rows) 
 RANGE partitioning by DATE column 
 Dimension Tables 
 Usually „small“ (10 to 10000 rows) 
 In most cases not partitioned 
 But how about large dimensions? 
 e.g. customer dimension with millions of 
rows 
Partitioning Your Oracle Data Warehouse 
2009 
16
HASH Partitioning on Large Dimension 
 DIM_CUSTOMER 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
17 
 HASH Partitioning 
 Partition Key: CUSTOMER_ID 
 FCT_SALES 
 Composite RANGE-HASH Partitioning 
 Partition Key: SALES_DATE 
 Subpartition Key: CUSTOMER_ID
HASH Partitioning on Large Dimension 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
18
Practical Example 3: Telecommunication Company 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
19
LIST Partitioning on Large Dimension 
 DIM_CUSTOMER 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
20 
 LIST Partitioning 
 Partition Key: COUNTRY_CODE 
 FCT_SALES 
 Composite RANGE-LIST Partitioning 
 Partition Key: SALES_DATE 
 Subpartition Key: COUNTRY_CODE 
(denormalized column in fact table)
LIST Partitioning on Large Dimension 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
21
 New approach for partition pruning on join conditions 
 A bloom filter is created based on the dimension table restriction 
 Dynamic partition pruning based on that bloom filter 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
22
AGENDA 
1. Partitioning Concepts 
2. The Right Partition Key 
3. Large Dimensions 
4. Partition Maintenance 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
23
Practical Example 3: Monthly Partition Maintenance 
 Requirements 
 Monthly partitions on all fact tables, daily inserts into current partitions 
 3 years of history (36 partitions per table) 
 Table compression to increase full table scan performance 
 Backup of current partitions only 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
24
Practical Example 3: Monthly Partition Maintenance 
1. Set next tablespace to read-write 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
25
Practical Example 3: Monthly Partition Maintenance 
1. Set next tablespace to read-write 
2. Drop oldest partition 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
26
Practical Example 3: Monthly Partition Maintenance 
1. Set next tablespace to read-write 
2. Drop oldest partition 
3. Create new partition for next month 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
27
Practical Example 3: Monthly Partition Maintenance 
1. Set next tablespace to read-write 
2. Drop oldest partition 
3. Create new partition for next month 
4. Compress current partition 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
28
Practical Example 3: Monthly Partition Maintenance 
1. Set next tablespace to read-write 
2. Drop oldest partition 
3. Create new partition for next month 
4. Compress current partition 
5. Set tablespace to read-only 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
29
Interval Partitioning 
 In Oracle11g, the creation of new partitions can be automated 
2014 © Trivadis 
 Example: 
Partitioning Your Oracle Data Warehouse 
2009 
30
Gathering Optimizer Statistics 
 DBMS_STATS parameter GRANULARITY defines statistics level 
2014 © Trivadis 
 Example: 
Partitioning Your Oracle Data Warehouse 
2009 
31
Problem of Global Statistics 
 Global statistics are essential for good execution plans 
 num_distinct, low_value, high_value, density, histograms 
 Gathering global statistics is time-consuming 
 All partitions must be scanned 
 Typical approach 
 After loading data, only modified partition statistics are gathered 
 Global statistics are gathered on regular time base (e.g. weekends) 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
32
Incremental Global Statistics 
 Synopsis-based gathering of statistics 
 For each partition a synopsis is stored in SYSAUX tablespace 
 Statistics metadata for partition and columns of partition 
 Global statistics by aggregating the synopses from each partition 
 Activate incremental global statistics: 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
33
Partitioning Your Data Warehouse – Core Messages 
2014 © Trivadis 
 Oracle Partitioning is a powerful option 
– not only for data warehouses 
 The concept is simple, but the reality 
can be complex 
 Many new partitioning features added 
in Oracle Database 11g 
 New Composite Partitioning methods 
 Interval Partitioning 
 Join-Filter Pruning 
 Incremental Global Statistics 
Partitioning Your Oracle Data Warehouse 
2009 
34
Thank you. 
Dani Schnider 
Principal Consultant 
Business Intelligence 
dani.schnider@trivadis.com 
Oracle Open World 2009, 
San Francisco 
BASEL BERN BRUGG LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN 
2014 © Trivadis 
Partitioning Your Oracle Data Warehouse 
2009 
35

More Related Content

What's hot (19)

PPTX
Using SSRS Reports with SSAS Cubes
Code Mastery
 
PDF
From Raw Data to Analytics with No ETL
Cloudera, Inc.
 
PPTX
OLAP
Slideshare
 
PPT
Star schema my sql
deathsubte
 
PDF
Data Warehouse Best Practices
Eduardo Castro
 
PPTX
Data warehouse
RajThakuri
 
PPT
Data Warehouse Logical Design using Mysql
HAFIZ Islam
 
PPTX
Oltp vs olap
Mr. Fmhyudin
 
PDF
Oracle GoldenGate for Oracle DBAs
Guatemala User Group
 
PDF
Getting the most out of your Oracle 12.2 Optimizer (i.e. The Brain)
SolarWinds
 
PPT
Oracle
Sandeep Kamath
 
PPT
Teradata 13.10
Teradata
 
PPT
Making MySQL Great For Business Intelligence
Calpont
 
PPTX
Oracle 12c
Tank Bhavin
 
PPTX
Data Warehouse
MadhuriNigam1
 
PPT
OLAP
Ashir Ali
 
PDF
Part 3 - Data Warehousing Lecture at BW Cooperative State University (DHBW)
Andreas Buckenhofer
 
PDF
Day 02 sap_bi_overview_and_terminology
tovetrivel
 
PDF
Consolidate More: High Performance Primary Deduplication in the Age of Abunda...
Hitachi Vantara
 
Using SSRS Reports with SSAS Cubes
Code Mastery
 
From Raw Data to Analytics with No ETL
Cloudera, Inc.
 
Star schema my sql
deathsubte
 
Data Warehouse Best Practices
Eduardo Castro
 
Data warehouse
RajThakuri
 
Data Warehouse Logical Design using Mysql
HAFIZ Islam
 
Oltp vs olap
Mr. Fmhyudin
 
Oracle GoldenGate for Oracle DBAs
Guatemala User Group
 
Getting the most out of your Oracle 12.2 Optimizer (i.e. The Brain)
SolarWinds
 
Teradata 13.10
Teradata
 
Making MySQL Great For Business Intelligence
Calpont
 
Oracle 12c
Tank Bhavin
 
Data Warehouse
MadhuriNigam1
 
OLAP
Ashir Ali
 
Part 3 - Data Warehousing Lecture at BW Cooperative State University (DHBW)
Andreas Buckenhofer
 
Day 02 sap_bi_overview_and_terminology
tovetrivel
 
Consolidate More: High Performance Primary Deduplication in the Age of Abunda...
Hitachi Vantara
 

Similar to Partitioning your Oracle Data Warehouse - Just a simple task? (20)

PDF
MySQL partitioning
OracleMySQL
 
PPTX
POUG 2019 - Oracle Partitioning for DBAs and Devs
Franky Weber Faust
 
PDF
Partitioning 11g-whitepaper-159443
Sandeep Chandra --seeking a new position
 
PDF
Oracle Partitioning for DBAs and Developers
Franky Weber Faust
 
PDF
Partitioning Tables and Indexing Them --- Article
Hemant K Chitale
 
PPTX
Data warehouse 25 data warehouse partitioning
Vaibhav Khanna
 
ODP
Partitioning
Reema Gajjar
 
PDF
MySQL Partitioning 5.6
Mark Swarbrick
 
PDF
PL/SQL Camp MeetUp 2019 - Oracle Partitioning for Developers
Franky Weber Faust
 
PDF
Practical Partitioning in Production with Postgres
Jimmy Angelakos
 
PDF
Practical Partitioning in Production with Postgres
EDB
 
PDF
OER UNIT 4 PARTITION
Girija Muscut
 
PPTX
Partitioning 101
Connor McDonald
 
PPTX
Why To Use Data Partitioning?
raima sen
 
PDF
Table Partitioning: Secret Weapon for Big Data Problems
John Sterrett
 
PDF
Big data mgmt bala
Michelle Crapo
 
PPT
Five Tuning Tips For Your Datawarehouse
Jeff Moss
 
PDF
Table Partitioning in SQL Server: A Magic Solution for Better Performance? (P...
Cathrine Wilhelmsen
 
PDF
Twp partitioning-11gr2-2009-09-130569
Naga Mallesh K
 
PDF
Partitioning tables and indexing them
Hemant K Chitale
 
MySQL partitioning
OracleMySQL
 
POUG 2019 - Oracle Partitioning for DBAs and Devs
Franky Weber Faust
 
Partitioning 11g-whitepaper-159443
Sandeep Chandra --seeking a new position
 
Oracle Partitioning for DBAs and Developers
Franky Weber Faust
 
Partitioning Tables and Indexing Them --- Article
Hemant K Chitale
 
Data warehouse 25 data warehouse partitioning
Vaibhav Khanna
 
Partitioning
Reema Gajjar
 
MySQL Partitioning 5.6
Mark Swarbrick
 
PL/SQL Camp MeetUp 2019 - Oracle Partitioning for Developers
Franky Weber Faust
 
Practical Partitioning in Production with Postgres
Jimmy Angelakos
 
Practical Partitioning in Production with Postgres
EDB
 
OER UNIT 4 PARTITION
Girija Muscut
 
Partitioning 101
Connor McDonald
 
Why To Use Data Partitioning?
raima sen
 
Table Partitioning: Secret Weapon for Big Data Problems
John Sterrett
 
Big data mgmt bala
Michelle Crapo
 
Five Tuning Tips For Your Datawarehouse
Jeff Moss
 
Table Partitioning in SQL Server: A Magic Solution for Better Performance? (P...
Cathrine Wilhelmsen
 
Twp partitioning-11gr2-2009-09-130569
Naga Mallesh K
 
Partitioning tables and indexing them
Hemant K Chitale
 
Ad

More from Trivadis (20)

PDF
Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
Trivadis
 
PDF
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
Trivadis
 
PDF
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Trivadis
 
PDF
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Trivadis
 
PDF
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
Trivadis
 
PDF
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
Trivadis
 
PDF
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
Trivadis
 
PDF
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Trivadis
 
PDF
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
Trivadis
 
PDF
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Trivadis
 
PDF
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
Trivadis
 
PDF
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
Trivadis
 
PDF
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
Trivadis
 
PDF
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
Trivadis
 
PDF
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
Trivadis
 
PDF
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
Trivadis
 
PDF
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
Trivadis
 
PDF
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
Trivadis
 
PDF
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
Trivadis
 
PDF
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
Trivadis
 
Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
Trivadis
 
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
Trivadis
 
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Trivadis
 
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Trivadis
 
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
Trivadis
 
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
Trivadis
 
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
Trivadis
 
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Trivadis
 
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
Trivadis
 
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Trivadis
 
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
Trivadis
 
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
Trivadis
 
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
Trivadis
 
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
Trivadis
 
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
Trivadis
 
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
Trivadis
 
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
Trivadis
 
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
Trivadis
 
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
Trivadis
 
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
Trivadis
 
Ad

Recently uploaded (16)

PPTX
AI presentation for everyone in every fields
dodinhkhai1
 
PDF
Generalization predition MOOCs - Conference presentation - eMOOCs 2025
pmmorenom01
 
PPTX
Presentationexpressions You are student leader and have just come from a stud...
BENSTARBEATZ
 
PPTX
2025-07-06 Abraham 06 (shared slides).pptx
Dale Wells
 
PPTX
Pastor Bob Stewart Acts 21 07 09 2025.pptx
FamilyWorshipCenterD
 
PPTX
presentation on legal and regulatory action
raoharsh4122001
 
PPTX
Food_and_Drink_Bahasa_Inggris_Kelas_5.pptx
debbystevani36
 
PPTX
BARRIERS TO EFFECTIVE COMMUNICATION.pptx
shraddham25
 
PPTX
Great-Books. Powerpoint presentation. files
tamayocrisgie
 
PPTX
Inspired by VeinSense: Supercharge Your Hackathon with Agentic AI
ShubhamSharma2528
 
PPTX
STURGEON BAY WI AG PPT JULY 6 2025.pptx
FamilyWorshipCenterD
 
PDF
The Impact of Game Live Streaming on In-Game Purchases of Chinese Young Game ...
Shibaura Institute of Technology
 
PDF
Leveraging the Power of Jira Dashboard.pdf
siddharthshukla742740
 
PDF
The Family Secret (essence of loveliness)
Favour Biodun
 
PPTX
some leadership theories MBA management.pptx
rkseo19
 
PDF
Cloud Computing Service Availability.pdf
chakrirocky1
 
AI presentation for everyone in every fields
dodinhkhai1
 
Generalization predition MOOCs - Conference presentation - eMOOCs 2025
pmmorenom01
 
Presentationexpressions You are student leader and have just come from a stud...
BENSTARBEATZ
 
2025-07-06 Abraham 06 (shared slides).pptx
Dale Wells
 
Pastor Bob Stewart Acts 21 07 09 2025.pptx
FamilyWorshipCenterD
 
presentation on legal and regulatory action
raoharsh4122001
 
Food_and_Drink_Bahasa_Inggris_Kelas_5.pptx
debbystevani36
 
BARRIERS TO EFFECTIVE COMMUNICATION.pptx
shraddham25
 
Great-Books. Powerpoint presentation. files
tamayocrisgie
 
Inspired by VeinSense: Supercharge Your Hackathon with Agentic AI
ShubhamSharma2528
 
STURGEON BAY WI AG PPT JULY 6 2025.pptx
FamilyWorshipCenterD
 
The Impact of Game Live Streaming on In-Game Purchases of Chinese Young Game ...
Shibaura Institute of Technology
 
Leveraging the Power of Jira Dashboard.pdf
siddharthshukla742740
 
The Family Secret (essence of loveliness)
Favour Biodun
 
some leadership theories MBA management.pptx
rkseo19
 
Cloud Computing Service Availability.pdf
chakrirocky1
 

Partitioning your Oracle Data Warehouse - Just a simple task?

  • 1. Partitioning Your Oracle Data Warehouse – Just a Simple Task? Dani Schnider Principal Consultant Business Intelligence [email protected] Oracle Open World 2009, San Francisco BASEL BERN BRUGG LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 1
  • 2. Dani Schnider  Principal Consultant und DWH/BI Lead Architect bei Trivadis in Zürich  Kursleiter für Trivadis-Kurse über Data Warehousing, SQL Optimierung und Oracle Warehouse Builder  Co-Autor des Buches «Data Warehousing mit Oracle» 2014 © Trivadis 2 Partitioning Your Oracle Data Warehouse 2009
  • 3. Mit über 600 IT- und Fachexperten bei Ihnen vor Ort 2014 © Trivadis 11 Trivadis Niederlassungen mit über 600 Mitarbeitenden 200 Service Level Agreements Mehr als 4'000 Trainingsteilnehmer Forschungs- und Entwicklungs-budget: CHF 5.0 / EUR 4 Mio. Finanziell unabhängig und nachhaltig profitabel Erfahrung aus mehr als 1'900 Projekten pro Jahr bei über 800 Kunden Stand 12/2012 Hamburg Düsseldorf Frankfurt Freiburg München Wien Basel Bern Zürich Lausanne 3 Stuttgart Partitioning Your Oracle Data Warehouse 2009 3
  • 4. AGENDA 1. Partitioning Concepts 2. The Right Partition Key 3. Large Dimensions 4. Partition Maintenance 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 4
  • 5. Partitioning – The Basic Idea  Decompose tables/indexes into smaller pieces 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 5
  • 6. Partitioning Methods in Oracle  Additionally: Interval Partitioning, Reference Partitioning, Virtual Column-Based Partitioning 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 6
  • 7. Benefits of Partitioning Partition Pruning  Reduce I/O: Only relevant partitions have to be accessed Partition-Wise Joins  Full PWJ: Join two equi-partitioned tables (parallel or serial)  Partial PWJ: Join partitioned with non-partitioned table (parallel) Rolling History  Create new partitions in periodical intervals  Drop old partitions in periodical intervals Manageability  Backups, statistics gathering, compressing on individual partitions 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 7
  • 8. AGENDA 1. Partitioning Concepts 2. The Right Partition Key 3. Large Dimensions 4. Partition Maintenance 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 8
  • 9. Partition Methods and Partition Keys  Important questions for Partitioning:  Which tables should be partitioned?  Which partition method should be used?  Which partition key(s) should be used?  Partition key is important for  Query optimization (partition pruning, partition-wise 2014 © Trivadis joins)  ETL performance (partition exchange, rolling history)  Typically in data warehouses  RANGE partitioning of fact tables on DATE column  But which DATE column? Partitioning Your Oracle Data Warehouse 2009 9
  • 10. Practical Example 1: Airline Company  Flight bookings are stored in partitioned table  RANGE partitioning per month, partition key: booking date  Problem: Most of the reports are based on the flight date  Flights can be booked 11 months ahead  11 partitions must be read of one particular flight date 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 10
  • 11. Practical Example 1: Airline Company  Solution: partition key flight date instead of booking date  Data is loaded into current and future partitions  Reports based on flight date read only one partition  Reports based on booking date must read 11 (small) partitions 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 11
  • 12. Practical Example 1: Airline Company  Better solution: Composite RANGE-RANGE partitioning  RANGE partitioning on flight date  RANGE subpartitioning on booking date  More flexibility for reports on flight date and/or on booking date 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 12
  • 13. Practical Example 2: International Bank  Account balance data of international customers  Monthly files of different locations (countries)  Correction files replace last delivery for the same month/country  Original approach  Technical load id for each combination of month/country  LIST partitioning on load id  Files are loaded in stage table  Partition exchange with current partition 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 13
  • 14. Practical Example 2: International Bank  Problem: partition key load id is useless for queries  Queries are based on balance date 2014 © Trivadis  Solution  RANGE partitioning on balance date  LIST subpartitions on country code  Partition exchange with subpartitions Partitioning Your Oracle Data Warehouse 2009 14
  • 15. AGENDA 1. Partitioning Concepts 2. The Right Partition Key 3. Large Dimensions 4. Partition Maintenance 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 15
  • 16. Partitioning in Star Schema 2014 © Trivadis  Fact Table  Usually „big“ (millions to billions of rows)  RANGE partitioning by DATE column  Dimension Tables  Usually „small“ (10 to 10000 rows)  In most cases not partitioned  But how about large dimensions?  e.g. customer dimension with millions of rows Partitioning Your Oracle Data Warehouse 2009 16
  • 17. HASH Partitioning on Large Dimension  DIM_CUSTOMER 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 17  HASH Partitioning  Partition Key: CUSTOMER_ID  FCT_SALES  Composite RANGE-HASH Partitioning  Partition Key: SALES_DATE  Subpartition Key: CUSTOMER_ID
  • 18. HASH Partitioning on Large Dimension 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 18
  • 19. Practical Example 3: Telecommunication Company 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 19
  • 20. LIST Partitioning on Large Dimension  DIM_CUSTOMER 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 20  LIST Partitioning  Partition Key: COUNTRY_CODE  FCT_SALES  Composite RANGE-LIST Partitioning  Partition Key: SALES_DATE  Subpartition Key: COUNTRY_CODE (denormalized column in fact table)
  • 21. LIST Partitioning on Large Dimension 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 21
  • 22.  New approach for partition pruning on join conditions  A bloom filter is created based on the dimension table restriction  Dynamic partition pruning based on that bloom filter 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 22
  • 23. AGENDA 1. Partitioning Concepts 2. The Right Partition Key 3. Large Dimensions 4. Partition Maintenance 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 23
  • 24. Practical Example 3: Monthly Partition Maintenance  Requirements  Monthly partitions on all fact tables, daily inserts into current partitions  3 years of history (36 partitions per table)  Table compression to increase full table scan performance  Backup of current partitions only 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 24
  • 25. Practical Example 3: Monthly Partition Maintenance 1. Set next tablespace to read-write 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 25
  • 26. Practical Example 3: Monthly Partition Maintenance 1. Set next tablespace to read-write 2. Drop oldest partition 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 26
  • 27. Practical Example 3: Monthly Partition Maintenance 1. Set next tablespace to read-write 2. Drop oldest partition 3. Create new partition for next month 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 27
  • 28. Practical Example 3: Monthly Partition Maintenance 1. Set next tablespace to read-write 2. Drop oldest partition 3. Create new partition for next month 4. Compress current partition 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 28
  • 29. Practical Example 3: Monthly Partition Maintenance 1. Set next tablespace to read-write 2. Drop oldest partition 3. Create new partition for next month 4. Compress current partition 5. Set tablespace to read-only 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 29
  • 30. Interval Partitioning  In Oracle11g, the creation of new partitions can be automated 2014 © Trivadis  Example: Partitioning Your Oracle Data Warehouse 2009 30
  • 31. Gathering Optimizer Statistics  DBMS_STATS parameter GRANULARITY defines statistics level 2014 © Trivadis  Example: Partitioning Your Oracle Data Warehouse 2009 31
  • 32. Problem of Global Statistics  Global statistics are essential for good execution plans  num_distinct, low_value, high_value, density, histograms  Gathering global statistics is time-consuming  All partitions must be scanned  Typical approach  After loading data, only modified partition statistics are gathered  Global statistics are gathered on regular time base (e.g. weekends) 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 32
  • 33. Incremental Global Statistics  Synopsis-based gathering of statistics  For each partition a synopsis is stored in SYSAUX tablespace  Statistics metadata for partition and columns of partition  Global statistics by aggregating the synopses from each partition  Activate incremental global statistics: 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 33
  • 34. Partitioning Your Data Warehouse – Core Messages 2014 © Trivadis  Oracle Partitioning is a powerful option – not only for data warehouses  The concept is simple, but the reality can be complex  Many new partitioning features added in Oracle Database 11g  New Composite Partitioning methods  Interval Partitioning  Join-Filter Pruning  Incremental Global Statistics Partitioning Your Oracle Data Warehouse 2009 34
  • 35. Thank you. Dani Schnider Principal Consultant Business Intelligence [email protected] Oracle Open World 2009, San Francisco BASEL BERN BRUGG LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN 2014 © Trivadis Partitioning Your Oracle Data Warehouse 2009 35