SlideShare una empresa de Scribd logo
1 de 43
Partitioning



        Par                 titio               ning




Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
De que vamos a hablar cuando hablemos de particionamiento de tablas


   •   Fundamentalmente del trabajo con grandes volúmenes de datos

   •   Como mejorar su administración

   •   Como mejorar su performance

   •   Como entender el negocio mirando hacia adelante




              Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Introducción al particionado de tablas
   • Oracle incorpora el particionado en la versión 8.0

   • La versión 11g es la 8va generación de particionados

   • Y es la que mayores opciones presenta, manteniendo
     todas las particularidades sus versiones anteriores




              Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
¿Qué significa particionado de tablas?
   • Básicamente de que una determinada tabla se subdivida en
     partes más pequeñas a partir de un criterio establecido


            Criterio de
            particionamiento




             Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Particionado en acción
En el ejemplo tenemos dos tabla de similares características, una particionada
‘SALES’
Otra no ‘SALES_NP’

             Select Table_Name, Num_Rows From User_Tables
             Where Table_Name ='SALES_NP'
             Union
             Select Table_Name, Num_Rows From User_Tables
             Where Table_Name ='SALES'




  Ambas tablas tienen la misma cantidad de filas


               Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Particionado en acción
Ahora veremos la verdadera distribución de los datos en la tabla particionada

    Select Table_Name, Partition_Name,
           Num_Rows
    From User_Tab_Partitions
    Where Table_Name='SALES'

En este caso el criterio de particionamiento
es sobre un eje de tiempo pero no homogéneo
eso lo veremos después.
Lo que observamos es la distribución de
registros en distintas particiones.




               Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Particionado en acción
   •   Las sentencias DML no cambian
   •   La sentencia Select puede o no indicar una partición especifica
       • Si la indica y el dato existe actúa más rápido
        •   Si la indica y el dato no existe no devuelve ningún registro
            aunque existe en otra partición.
   •   Una sentencia Insert, Update, Merge o Delete no requiere que se indique
       la partición.

   La siguiente sentencia cuenta los registros existentes en la partición llamada
   Sales_Q1_1998

   Select Count(1) From Sales Partition(Sales_Q1_1998)




               Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Estrategia de particionamiento
   •   ¿Qué implica genera una estrategia de particionamiento

   •   Conocer el negocio

   •   Tener información de cómo estábamos y hacia donde vamos

   •   Mejorar la respuesta en la obtención de información

   •   Saber que información es actual y requerida y cual no




             Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Estrategia de particionamiento
   •   Esto implica saber que las particiones no son estáticas y están
       en función del negocio.

   •   Mayor granulación para datos más nuevos

   •   Menor granulación para datos menos accesibles

   •   Mantener una política de actualización de las particiones

   •   Generar las particiones necesarias y útiles




             Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Cuando particionar una tabla
   Aquí están algunas sugerencias para el momento de la
   partición de una tabla:

   •   Las Tablas de más de 2 GB se debe considerar siempre
       como candidatos para particionamiento.

   •   Las tablas que contienen datos antiguos, en los que se agregan
       nuevos datos.
       Un ejemplo típico es un cuadro histórico en el que sólo el mes en curso
       de datos es actualizable y los otros 11 meses son de sólo lectura.

   •   Cuando el contenido de una tabla debe ser distribuido a través de
       diferentes tipos de dispositivos de almacenamiento.




              Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Tipos de particionamientos

   Oracle soporta dos tipos de particiones


       •   Particionamiento simple tiene un
           único criterio de particionamiento
           y no cuenta con particiones hijas
           dentro de la partición.




              Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Tipos de particionamientos

   Oracle soporta dos tipos de particiones


       •    Particionamiento compuesto
            Cada partición cuenta a su vez
            con particiones.
            En la figura la partición principal
            es por trimestre del año 2010.
            A su vez esa partición tiene una
           subpartición




               Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   Los tipos de particionamiento simple soportan 3 métodos

                Particionamiento por Rango

                Particionamiento Hash

                Particionamiento por Lista




             Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento por Rango
       Una tabla tiene la siguiente cantidad de registros agrupados por año




       Vamos a crear una tabla con dos particiones una para el año 1998 y
       otra para el año 1999.
       Veremos que pasa con los datos.




              Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento por Rango
       Sintaxis




              Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •    Particionamiento por Rango


                                                   Este es el contenido en años de la
                                                   Tabla Sales

                                                   Partición existente para estos datos


                                                   Partición no existente para estos datos


       En este caso Oracle da como resultado el siguiente error




               Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento por Rango
       Solucionando el problema de que una Key quede fuera de rango




       Opera como un Else que permite que valore que no tienen
       a una partición sean insertados en esta.


             Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •      Particionamiento por Rango
          Solucionando el problema de que una Key quede fuera de rango




       Recopilamos estadísticas para la tabla




                Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento por Rango
       Veamos el resultado




             Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento por Rango
       Actualización de una columna clave




       Genera el siguiente error




             Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento por Rango
       Actualización de una columna clave
       Para evitar el error anterior se coloca la clausula

       ENABLE ROW MOVEMENT




              Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento por Rango
       Actualización de una columna clave



       El total de registros a modificar es de 11631


        Actual                                           Anterior




              Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento Hash
       El nombre de la partición es creado por el sistema
       Sintaxis




  Opcional, indica los tablespaces donde se almacenará cada partición

              Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento Hash
       El nombre de la partición es creado por el sistema
       Sintaxis




              Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento Hash




            Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento Hash
       Distribución de la carga en las particiones




             Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento Hash
       Actualización de columna key




       Como en el caso del particionamiento por Rango
       Para actualizar una columna key se debe colocar la clausula

       ENABLE ROW MOVEMENT




              Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento por lista




             Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento por lista
       Distribución de los datos




             Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento por Referencia

       Este particionamiento toma la referencia padre/hijo de dos tablas para
       crear una partición en el hijo tomando la referencia a la tabla padre

       El ejemplo muestra la tabla padre que tiene los departamentos de la
       empresa particionada por su ubicación.

       Y la tabla de empleados que se particiona por la referencia de la
       foreing key.

       La tabla empleados hereda las particiones que tenga la tabla de
       departamentos




              Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento por Referencia
       Tabla departamentos




             Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •    Particionamiento por Referencia
        Tabla Empleados




   La columna que se referencia en la partición debe tener la restricción
   NOT NULL

               Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento por Referencia




             Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento por Sistema

       Este tipo de particionamiento no cuenta con clave por lo cual se
       El manejo de donde insertar un dato debe ser gestionado por la
       aplicación.
       Lo mismo que cuando se quiere recuperar un juego de registros, se
       debe indicar en que partición está almacenado el mismo.




             Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Particionamiento por Sistema

       Este tipo de particionamiento no cuenta con clave por lo cual se
       El manejo de donde insertar un dato debe ser gestionado por la
       aplicación.
       Lo mismo que cuando se quiere recuperar un juego de registros, se
       debe indicar en que partición está almacenado el mismo.




             Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
    •   Particionamiento por Sistema

   CREATE TABLE   systab (c1 integer, c2 integer)
   PARTITION BY   SYSTEM
   (
      PARTITION   p1   TABLESPACE      tbs_1,
      PARTITION   p2   TABLESPACE      tbs_2,
      PARTITION   p3   TABLESPACE      tbs_3,
      PARTITION   p4   TABLESPACE      tbs_4
   );

INSERT INTO systab PARTITION (p1) VALUES (4,5);

INSERT INTO systab PARTITION (p2) VALUES (150,2);




              Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •    Creando particiones en tablas no particionadas.

         Toda tabla no particionada puede ser modificada y agregar
   particiones, eliminar particiones o modificar las particiones existentes.

   Creando particiones en tabla no particionada
       • Un método puede ser crear una tabla con la misma estructura de
          la actual, insertar los datos en ella.
       •Dropear la tabla Origen
       •Crearla con las particiones
       •Volver a insertar los registros en la de origen con las particiones
       creadas.




               Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Creando particiones en tablas no particionadas.
       Veamos con ejemplos, la tabla a particionar es la tabla Sales_NP
       Es conveniente crear en primer instancia la tabla como Nologging




             Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Creando particiones en tablas no particionadas.

       Veamos con ejemplos, la tabla a particionar es la tabla Employees en
       este caso usamos un package logeados con privilegios de sysdba
       Ejecutamos la siguiente sentencia:


       Si la ejecución indicará un error indica que esa tabla no se puede
       particionar,
       En caso que se ejecute satisfactoriamente creamos una tabla
       con idénticos atributos y con las particiones necesarias.




              Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Creando particiones en tablas no particionadas.
       En caso que se ejecute satisfactoriamente creamos una tabla
       con idénticos atributos y con las particiones necesarias.




             Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Creando particiones en tablas no particionadas.
       Validar si se puede particionar la tabla.


       Comenzamos el proceso de redefinición de la tabla


       Generamos las constraint que no existían en la tabla de auxiliar



       Finalizamos el proceso y borramos al tabla auxiliar




              Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Agregar particiones a una tabla particionada.
       Tabla particionada por Rango



       Tabla particionada Hash




       Tabla Particionada por Lista




              Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza
Métodos de particionamientos
   •   Unir particiones a una tabla particionada.
       Tabla particionada por Rango




       Tabla particionada Hash




       Tabla Particionada por Lista




              Video conferencia Partitioning 11g 16/03/2012   Gerardo Daniel Tezza

Más contenido relacionado

Destacado

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Destacado (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

Partitioning

  • 1. Partitioning Par titio ning Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 2. De que vamos a hablar cuando hablemos de particionamiento de tablas • Fundamentalmente del trabajo con grandes volúmenes de datos • Como mejorar su administración • Como mejorar su performance • Como entender el negocio mirando hacia adelante Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 3. Introducción al particionado de tablas • Oracle incorpora el particionado en la versión 8.0 • La versión 11g es la 8va generación de particionados • Y es la que mayores opciones presenta, manteniendo todas las particularidades sus versiones anteriores Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 4. ¿Qué significa particionado de tablas? • Básicamente de que una determinada tabla se subdivida en partes más pequeñas a partir de un criterio establecido Criterio de particionamiento Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 5. Particionado en acción En el ejemplo tenemos dos tabla de similares características, una particionada ‘SALES’ Otra no ‘SALES_NP’ Select Table_Name, Num_Rows From User_Tables Where Table_Name ='SALES_NP' Union Select Table_Name, Num_Rows From User_Tables Where Table_Name ='SALES' Ambas tablas tienen la misma cantidad de filas Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 6. Particionado en acción Ahora veremos la verdadera distribución de los datos en la tabla particionada Select Table_Name, Partition_Name, Num_Rows From User_Tab_Partitions Where Table_Name='SALES' En este caso el criterio de particionamiento es sobre un eje de tiempo pero no homogéneo eso lo veremos después. Lo que observamos es la distribución de registros en distintas particiones. Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 7. Particionado en acción • Las sentencias DML no cambian • La sentencia Select puede o no indicar una partición especifica • Si la indica y el dato existe actúa más rápido • Si la indica y el dato no existe no devuelve ningún registro aunque existe en otra partición. • Una sentencia Insert, Update, Merge o Delete no requiere que se indique la partición. La siguiente sentencia cuenta los registros existentes en la partición llamada Sales_Q1_1998 Select Count(1) From Sales Partition(Sales_Q1_1998) Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 8. Estrategia de particionamiento • ¿Qué implica genera una estrategia de particionamiento • Conocer el negocio • Tener información de cómo estábamos y hacia donde vamos • Mejorar la respuesta en la obtención de información • Saber que información es actual y requerida y cual no Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 9. Estrategia de particionamiento • Esto implica saber que las particiones no son estáticas y están en función del negocio. • Mayor granulación para datos más nuevos • Menor granulación para datos menos accesibles • Mantener una política de actualización de las particiones • Generar las particiones necesarias y útiles Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 10. Cuando particionar una tabla Aquí están algunas sugerencias para el momento de la partición de una tabla: • Las Tablas de más de 2 GB se debe considerar siempre como candidatos para particionamiento. • Las tablas que contienen datos antiguos, en los que se agregan nuevos datos. Un ejemplo típico es un cuadro histórico en el que sólo el mes en curso de datos es actualizable y los otros 11 meses son de sólo lectura. • Cuando el contenido de una tabla debe ser distribuido a través de diferentes tipos de dispositivos de almacenamiento. Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 11. Tipos de particionamientos Oracle soporta dos tipos de particiones • Particionamiento simple tiene un único criterio de particionamiento y no cuenta con particiones hijas dentro de la partición. Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 12. Tipos de particionamientos Oracle soporta dos tipos de particiones • Particionamiento compuesto Cada partición cuenta a su vez con particiones. En la figura la partición principal es por trimestre del año 2010. A su vez esa partición tiene una subpartición Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 13. Métodos de particionamientos Los tipos de particionamiento simple soportan 3 métodos Particionamiento por Rango Particionamiento Hash Particionamiento por Lista Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 14. Métodos de particionamientos • Particionamiento por Rango Una tabla tiene la siguiente cantidad de registros agrupados por año Vamos a crear una tabla con dos particiones una para el año 1998 y otra para el año 1999. Veremos que pasa con los datos. Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 15. Métodos de particionamientos • Particionamiento por Rango Sintaxis Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 16. Métodos de particionamientos • Particionamiento por Rango Este es el contenido en años de la Tabla Sales Partición existente para estos datos Partición no existente para estos datos En este caso Oracle da como resultado el siguiente error Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 17. Métodos de particionamientos • Particionamiento por Rango Solucionando el problema de que una Key quede fuera de rango Opera como un Else que permite que valore que no tienen a una partición sean insertados en esta. Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 18. Métodos de particionamientos • Particionamiento por Rango Solucionando el problema de que una Key quede fuera de rango Recopilamos estadísticas para la tabla Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 19. Métodos de particionamientos • Particionamiento por Rango Veamos el resultado Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 20. Métodos de particionamientos • Particionamiento por Rango Actualización de una columna clave Genera el siguiente error Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 21. Métodos de particionamientos • Particionamiento por Rango Actualización de una columna clave Para evitar el error anterior se coloca la clausula ENABLE ROW MOVEMENT Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 22. Métodos de particionamientos • Particionamiento por Rango Actualización de una columna clave El total de registros a modificar es de 11631 Actual Anterior Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 23. Métodos de particionamientos • Particionamiento Hash El nombre de la partición es creado por el sistema Sintaxis Opcional, indica los tablespaces donde se almacenará cada partición Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 24. Métodos de particionamientos • Particionamiento Hash El nombre de la partición es creado por el sistema Sintaxis Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 25. Métodos de particionamientos • Particionamiento Hash Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 26. Métodos de particionamientos • Particionamiento Hash Distribución de la carga en las particiones Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 27. Métodos de particionamientos • Particionamiento Hash Actualización de columna key Como en el caso del particionamiento por Rango Para actualizar una columna key se debe colocar la clausula ENABLE ROW MOVEMENT Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 28. Métodos de particionamientos • Particionamiento por lista Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 29. Métodos de particionamientos • Particionamiento por lista Distribución de los datos Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 30. Métodos de particionamientos • Particionamiento por Referencia Este particionamiento toma la referencia padre/hijo de dos tablas para crear una partición en el hijo tomando la referencia a la tabla padre El ejemplo muestra la tabla padre que tiene los departamentos de la empresa particionada por su ubicación. Y la tabla de empleados que se particiona por la referencia de la foreing key. La tabla empleados hereda las particiones que tenga la tabla de departamentos Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 31. Métodos de particionamientos • Particionamiento por Referencia Tabla departamentos Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 32. Métodos de particionamientos • Particionamiento por Referencia Tabla Empleados La columna que se referencia en la partición debe tener la restricción NOT NULL Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 33. Métodos de particionamientos • Particionamiento por Referencia Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 34. Métodos de particionamientos • Particionamiento por Sistema Este tipo de particionamiento no cuenta con clave por lo cual se El manejo de donde insertar un dato debe ser gestionado por la aplicación. Lo mismo que cuando se quiere recuperar un juego de registros, se debe indicar en que partición está almacenado el mismo. Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 35. Métodos de particionamientos • Particionamiento por Sistema Este tipo de particionamiento no cuenta con clave por lo cual se El manejo de donde insertar un dato debe ser gestionado por la aplicación. Lo mismo que cuando se quiere recuperar un juego de registros, se debe indicar en que partición está almacenado el mismo. Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 36. Métodos de particionamientos • Particionamiento por Sistema CREATE TABLE systab (c1 integer, c2 integer) PARTITION BY SYSTEM ( PARTITION p1 TABLESPACE tbs_1, PARTITION p2 TABLESPACE tbs_2, PARTITION p3 TABLESPACE tbs_3, PARTITION p4 TABLESPACE tbs_4 ); INSERT INTO systab PARTITION (p1) VALUES (4,5); INSERT INTO systab PARTITION (p2) VALUES (150,2); Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 37. Métodos de particionamientos • Creando particiones en tablas no particionadas. Toda tabla no particionada puede ser modificada y agregar particiones, eliminar particiones o modificar las particiones existentes. Creando particiones en tabla no particionada • Un método puede ser crear una tabla con la misma estructura de la actual, insertar los datos en ella. •Dropear la tabla Origen •Crearla con las particiones •Volver a insertar los registros en la de origen con las particiones creadas. Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 38. Métodos de particionamientos • Creando particiones en tablas no particionadas. Veamos con ejemplos, la tabla a particionar es la tabla Sales_NP Es conveniente crear en primer instancia la tabla como Nologging Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 39. Métodos de particionamientos • Creando particiones en tablas no particionadas. Veamos con ejemplos, la tabla a particionar es la tabla Employees en este caso usamos un package logeados con privilegios de sysdba Ejecutamos la siguiente sentencia: Si la ejecución indicará un error indica que esa tabla no se puede particionar, En caso que se ejecute satisfactoriamente creamos una tabla con idénticos atributos y con las particiones necesarias. Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 40. Métodos de particionamientos • Creando particiones en tablas no particionadas. En caso que se ejecute satisfactoriamente creamos una tabla con idénticos atributos y con las particiones necesarias. Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 41. Métodos de particionamientos • Creando particiones en tablas no particionadas. Validar si se puede particionar la tabla. Comenzamos el proceso de redefinición de la tabla Generamos las constraint que no existían en la tabla de auxiliar Finalizamos el proceso y borramos al tabla auxiliar Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 42. Métodos de particionamientos • Agregar particiones a una tabla particionada. Tabla particionada por Rango Tabla particionada Hash Tabla Particionada por Lista Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza
  • 43. Métodos de particionamientos • Unir particiones a una tabla particionada. Tabla particionada por Rango Tabla particionada Hash Tabla Particionada por Lista Video conferencia Partitioning 11g 16/03/2012 Gerardo Daniel Tezza