Oracle Partitioning – Yesterday, Today, and Tomorrow Ananth Raghavan Senior Development Manager, Oracle Partitioning.

Download Oracle Partitioning – Yesterday, Today, and Tomorrow Ananth Raghavan Senior Development Manager, Oracle Partitioning.

Post on 24-Dec-2015

213 views

Category:

Documents

0 download

TRANSCRIPT

  • Slide 1
  • Slide 2
  • Oracle Partitioning Yesterday, Today, and Tomorrow Ananth Raghavan Senior Development Manager, Oracle Partitioning
  • Slide 3
  • 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 Oracles products remain at the sole discretion of Oracle.
  • Slide 4
  • Agenda History and evolution of Oracle Partitioning Proven functionality in 7 th generation Fundamental concepts for success Resolving some myths Upcoming new functionality Q&A
  • Slide 5
  • Agenda History and evolution of Oracle Partitioning Proven functionality in 7 th generation Fundamental concepts for success Resolving some myths Upcoming new functionality Q&A
  • Slide 6
  • It is Powerful functionality to logically partition objects into smaller pieces Only driven by business requirements Partitioning for Performance, Manageability, and Availability It is not Just a way to physically divide or clump - any large data set into smaller buckets Enabling pre-requirement to support a specific hardware/software design Hash mandatory for shared nothing systems What is Oracle Partitioning?
  • Slide 7
  • Logical Partitioning Does not underlie any constraints SMP, MPP, Cluster, Grid does not matter Purely based on the business requirement Availability. Manageability, Performance Beneficial for every environment Provides the most comprehensive functionality DB Physical versus Logical Partitioning Shared Everything Architecture - Oracle
  • Slide 8
  • Physical Partitioning Fundamental system setup requirement Node owns piece of DB Enables parallelism Number of partitions is equivalent to min. parallelism Always needs HASH distribution Equally sized partitions per node required for proper load balancing DB Physical versus Logical Partitioning Shared Nothing Architecture
  • Slide 9
  • Oracle 8.0 RANGE partitioning Fundamental Maintenance operations Static pruning Oracle8 i HASH, composite RANGE-HASH MERGE partitions Dynamic pruning Partition-wise joins Oracle9 i Release 1 LIST partitioning Global index maintenance Oracle9 i Release 2 Fast Split Composite RANGE-LIST DEFAULT partition for LIST Oracle Database10g Release 1 Internal re-architecture (scalability) Global hash-partitioned indexes Local index maintenance Oracle Database 10g Release 2 One million partitions Multi-dimensional pruning Resource optimized drop table * Lots of enhancements not shown here, e.g. IOTs, MVs Oracle Partitioning The way to Oracle Database 10g Release 2 Core functionality: Partitioning techniques
  • Slide 10
  • * Lots of enhancements not shown here, e.g. IOTs, MVs Oracle Partitioning The way to Oracle Database 10g Release 2 Partition Maintenance Oracle 8.0 RANGE partitioning Fundamental Maintenance operations Static pruning Oracle8 i HASH, composite RANGE-HASH MERGE partitions Dynamic pruning Partition-wise joins Oracle9 i Release 1 LIST partitioning Global index maintenance Oracle9 i Release 2 Fast Split Composite RANGE-LIST DEFAULT partition for LIST Oracle Database10g Release 1 Internal re-architecture (scalability) Global hash-partitioned indexes Local index maintenance Oracle Database 10g Release 2 One million partitions Multi-dimensional pruning Resource optimized drop table
  • Slide 11
  • * Lots of enhancements not shown here, e.g. IOTs, MVs Oracle Partitioning The way to Oracle Database 10g Release 2 Performance Oracle 8.0 RANGE partitioning Fundamental Maintenance operations Static pruning Oracle8 i HASH, composite RANGE-HASH MERGE partitions Dynamic pruning Partition-wise joins Oracle9 i Release 1 LIST partitioning Global index maintenance Oracle9 i Release 2 Fast Split Composite RANGE-LIST DEFAULT partition for LIST Oracle Database10g Release 1 Internal re-architecture (scalability) Global hash-partitioned indexes Local index maintenance Oracle Database 10g Release 2 One million partitions Multi-dimensional pruning Resource optimized drop table
  • Slide 12
  • Agenda History and evolution of Oracle Partitioning Proven functionality in 7 th generation Fundamental concepts for success Resolving some myths Upcoming new functionality Q&A
  • Slide 13
  • Oracle Partitioning Fundamental Concepts for Success While performance seems to be the most visible one, don't forget about the rest, e.g. Partitioning must address all business-relevant areas of Performance, Manageability, and Availability Partition autonomy is crucial Fundamental requirement for any partition maintenance operations Acknowledge partitions as metadata in the data dictionary
  • Slide 14
  • Oracle Partitioning Fundamental Concepts for Success Provide full partition autonomy Use local indexes whenever possible Enable partition all table-level operations for partitions, e.g. TRUNCATE, MOVE, COMPRESS Make partitions visible and usable for database administration Partition naming for ease of use Maintenance operations must be partition-aware Also true for indexes Maintenance operations must not interfere with online usage of a partitioned table
  • Slide 15
  • Agenda History and evolution of Oracle Partitioning Proven functionality in 7 th generation Fundamental concepts for success Resolving some myths Upcoming new functionality Q&A
  • Slide 16
  • Resolving some Myths Global Index maintenance is bad Partition maintenance takes longer when global indexes are updated Global index maintenance is incremental No complete rebuild Fully transparent Table and partition are not locked Continuous and transparent availability
  • Slide 17
  • Resolving some Myths Oracle cannot add or remove data from a partitioned table Oracle provides the most comprehensive set of data add and removal operations DROP removes a partition, including data and metadata TRUNCATE provides a fast data removal, preserving the metadata EXCHANGE provides the capability to exchange a partition with a standalone table Preserves data for both sides of the exchange Fast data in Fast data out
  • Slide 18
  • Resolving some Myths Local indexes are not important and cannot be used as primary or unique index Local indexes are crucial for full partition autonomy Logical grouping of partition and index segments enables fast maintenance operations Only local indexes enable full physical data separation for partitioned objects Local indexes can be unique or primary keys Inclusion of partitioning key mandatory for local autonomy Most indexes are non-unique
  • Slide 19
  • Resolving some Myths Oracle's Partition creation syntax is worse than the syntax of other vendors No syntactical sugar in SQL for initial object creation Provided by Enterprise Manager No metadata extension Subpartition templates provide real metadata Initial creation and future partitions Its getting even better.. Stay tuned for the upcoming new features section
  • Slide 20
  • Resolving some Myths .. Create partitions every month..
  • Slide 21
  • Resolving some Myths
  • Slide 22
  • History and evolution of Oracle Partitioning Proven functionality in 7 th generation Fundamental concepts for success Resolving some myths Upcoming new functionality Q&A Agenda
  • Slide 23
  • Future Directions (OW 2004/2005 slide)
  • Slide 24
  • Partition techniques enable partitioning for your business The more techniques the better Map your business process the most optimal way Oracle Database 11g enhances the existing partitioning strategies significantly Extended composite partitioning strategies Virtual column based partitioning Interval Partitioning REF Partitioning Extended Partitioning Strategies
  • Slide 25
  • Extended Composite Partitioning
  • Slide 26
  • Concept of composite partitioning Data is partitioned along two dimensions (A,B) A distinct value pair for the two dimensions uniquely determines the target partitioning Composite partitioning is complementary to multi- column range partitioning Extensions in Oracle Database 11g List-Range Range-Range List-Hash List-List Extended Composite Partitioning Strategies
  • Slide 27
  • Table SALES RANGE(order_date)-RANGE(ship_date) Jan 2006... Feb 2006Mar 2006Jan 2007... Jan 2006 Feb 2006 Jan 2007 Composite Partitioning - Concept
  • Slide 28
  • Table SALES RANGE(order_date)-RANGE(ship_date) Jan 2006... Feb 2006Mar 2006Jan 2007... Jan 2006 Feb 2006 May 2006 Mar 2006 All records with order_date in March 2006
  • Slide 29
  • Composite Partitioning - Concept Table SALES RANGE(order_date)-RANGE(ship_date) Jan 2006... Feb 2006Mar 2006Jan 2007... Jan 2006 Feb 2006 May 2006 All records with ship_date in May 2006 May 2006
  • Slide 30
  • Composite Partitioning - Concept Table SALES RANGE(order_date)-RANGE(ship_date) Jan 2006... Feb 2006Mar 2006Jan 2007... Jan 2006 Feb 2006 May 2006 Mar 2006 All records with order_date in March 2006 AND ship_date in May 2006 May 2006
  • Slide 31
  • Virtual Column based Partitioning
  • Slide 32
  • Virtual Columns Extended Schema attributes are fully derived and dependent on existing common data Redundant storage or extended view definitions are solving this problem today Requires additional maintenance and creates overhead Business Problem Solution Oracle Database 11g introduces virtual columns Purely virtual, meta-data only Treated as real columns except no DML Virtual columns can have statistics Virtual columns are eligible as partitioning key Enhanced performance and manageability
  • Slide 33
  • Virtual Columns - Example Base table with all attributes... CREATE TABLE accounts (acc_no number(10) not null, acc_name varchar2(50) not null,... 12500 Adams 12507 Blake 12666 12875 Smith King
  • Slide 34
  • Virtual Columns - Example 12500 Adams 12507 12 Blake 12666 12 12875 12 Smith King CREATE TABLE accounts (acc_no number(10) not null, acc_name varchar2(50) not null,... acc_branch number(2) generated always as (to_number(substr(to_char(acc_no),1,2))) 12 Base table with all attributes...... is extended with the virtual (derived) column
  • Slide 35
  • Virtual Columns - Example 12500 Adams 12507 12 Blake 12666 12 12875 12 Smith King CREATE TABLE accounts (acc_no number(10) not null, acc_name varchar2(50) not null,... acc_branch number(2) generated always as (to_number(substr(to_char(acc_no),1,2))) partition by list (acc_branch)... 12 Base table with all attributes...... is extended with the virtual (derived) column... and the virtual column is used as partitioning key 32320 Jones 32407 32 Clark 32758 32 32980 32 Phillips 32... Hurd
  • Slide 36
  • Interval Partitioning
  • Slide 37
  • Partitioning is key-enabling functionality for managing large volumes of data One logical object for application transparency Multiple physical segments for Administration Improves Manageability, Availability, and Performance Mar Jan Feb CDRs SQL Application Automate the partition management BUT Physical segmentation requires additional data management overhead E.g. new partitions must be created on-time for new data
  • Slide 38
  • Interval Partitioning Extension to Range Partitioning Full automation for equi-sized range partitions Partitions are created as metadata information only Start Partition is made persistent Segments are allocated as soon as new data arrives No need to create new partitions Local indexes are created and maintained as well No need for any partition management
  • Slide 39
  • Interval Partitioning CREATE TABLE sales (order_date DATE,...) PARTITON BY RANGE (order_date) INTERVAL(NUMTOYMINTERVAL(1,'month') (PARTITION p_first VALUES LESS THAN ('01-JAN-2006'); Table SALES Jan 2006... Feb 2006 Mar 2006Jan 2007Oct 2009Nov 2009... First segment is created As easy as One, Two, Three..
  • Slide 40
  • Interval Partitioning Table SALES Jan 2006... Feb 2006 Mar 2006Jan 2007Oct 2009Nov 2009... Other partitions only exist in metadata As easy as One, Two, Three.. CREATE TABLE sales (order_date DATE,...) PARTITON BY RANGE (order_date) INTERVAL(NUMTOYMINTERVAL(1,'month') (PARTITION p_first VALUES LESS THAN ('01-JAN-2006');
  • Slide 41
  • Interval Partitioning Table SALES Jan 2006... Feb 2006 Mar 2006Jan 2007Oct 2009Nov 2009... INSERT INTO sales (order_date DATE,...) VALUES ('04-MAR-2006',...); New segment is automatically allocated As easy as One, Two, Three.. CREATE TABLE sales (order_date DATE,...) PARTITON BY RANGE (order_date) INTERVAL(NUMTOYMINTERVAL(1,'month') (PARTITION p_first VALUES LESS THAN ('01-JAN-2006');
  • Slide 42
  • Interval Partitioning Table SALES Jan 2006... Feb 2006 Mar 2006Jan 2007Oct 2009Nov 2009... INSERT INTO sales (order_date DATE,...) VALUES ('17-OCT-2009',...);... whenever data for a new partition arrives As easy as One, Two, Three.. CREATE TABLE sales (order_date DATE,...) PARTITON BY RANGE (order_date) INTERVAL(NUMTOYMINTERVAL(1,'month') (PARTITION p_first VALUES LESS THAN ('01-JAN-2006');
  • Slide 43
  • Interval Partitioning Table SALES Jan 2006... Feb 2006 Mar 2006Jan 2007Oct 2009Nov 2009... Interval partitioned table can have classical range and automated interval section Automated new partition management plus full partition maintenance capabilities: Best of both worlds
  • Slide 44
  • Interval Partitioning Table SALES Jan 2006... Feb 2006 Mar 2006Jan 2007Oct 2009Nov 2009... Interval partitioned table can have classical range and automated interval section Automated new partition management plus full partition maintenance capabilities: Best of both worlds 1. MERGE and move old partitions for ILM Range partition section
  • Slide 45
  • Interval Partitioning Table SALES Jan 2006... Feb 2006 Mar 2006Jan 2007Oct 2009Nov 2009... Interval partitioned table can have classical range and automated interval section Automated new partition management plus full partition maintenance capabilities: Best of both worlds 1. MERGE and move old partitions for ILM Range partition section Interval partition section VALUES ('13-NOV-2009') 1. Insert new data - Automatic segment creation
  • Slide 46
  • Interval Partitioning Table SALES... 2005 Q1 2006Oct 2006 Range partitioned tables can be extended into interval partitioned tables Simple metadata command Investment protection Q2 2006...
  • Slide 47
  • Interval Partitioning Table SALES... 2005...