Um artigo técnico da Oracle Setembro de Particionamento com o Oracle Database 11g Release 2

Documentos relacionados
Novidades no LANDESK Asset Central

3 Arquitetura do Sistema

Particionamento no Banco de Dados Oracle 11g. Um artigo técnico da Oracle Junho de 2007

Data Warehouse ETL. Rodrigo Leite Durães.

Administração de Banco de Dados

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Bancos de Dados Notas de Aula Introdução Prof. Dr. Daniel A. Furtado

Oracle Value Chain Execution Reinventado a Excelência em Logística

Módulo 5. Arquitetura do SQL Server. Estruturas de Armazenamento. Armazenamento físico e lógico. Páginas

Oracle Database 11g: Novos Recursos para Administradores Release 2

ADVANCED CUSTOMER SERVICES PARA SUN ORACLE EXADATA

Bem-vindo ao tópico sobre os relatórios de imposto ampliados.

COMO SELECIONAR O RAID ADEQUADO PARA UMA SAN EQUALLOGIC

Adriano Maranhão PROFISSIONAIS E ATIVIDADES ENVOLVIDAS EM UM SGBD

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Conceitos Básicos. Fundação Centro de Análise, Pesquisa e Inovação Tecnológica Instituto de Ensino Superior - FUCAPI. Disciplina: Banco de Dados

Laboratório de Banco de Dados. Prof. Luiz Vivacqua.

Oracle Database 10g: Workshop de Administração II Release 2: Nova Versão

Aula 2 BD Introdução. Profa. Elaine Faria UFU

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Sistemas Gerenciadores de Banco de Dados

Bacula Enterprise Global Endpoint Deduplication

Oracle Database 10g: Fundamentos de SQL e PL/SQL

COMPARANDO "BW-IP" "BPC CLÁSSICO" "BPC EMBEDDED"

Sistemas da Informação. Banco de Dados I. Edson Thizon

Um artigo técnico da Oracle Setembro de Compressão Avançada com o Oracle Database 11g Release 2

Banco de Dados. SGBDs. Professor: Charles Leite

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Banco de Dados. SGBD - Sistema de Gerenciamento de Banco de Dados Parte 1. Prof. Leonardo Vasconcelos

Oracle Database 11g: Workshop de Administração II Novo

EA075 Memória virtual

Tabelas. Banco de Dados I MySQL

Conceitos, Arquitetura e Design

Banco de Dados. Aula 2 - Prof. Bruno Moreno 19/08/2011

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

Banco de Dados. SGBD - Sistema de Gerenciamento de Banco de Dados Parte 2. Prof. Leonardo Vasconcelos

Arquitetura de núcleo distribuído utilizando o sistema de switch central Z9000. Uma Nota Técnica da Dell

Infor LN Service Guia do usuário para o nivelamento da carga de trabalho

Aula 01 Conceito de Banco de Dados e SGBD

Projete produtos superiores. SolidWorks Novidades do PDMWorks Enterprise

Oracle Database 12c R2: Administração - Workshop Ed 3

GERENCIAMENTO DE DADOS Exercícios

Introdução a B anco de Dados. INE5206 Introdução à Informática INE/CTC/UFSC Prof. Roberto Willrich

Oracle PaaS and IaaS Public Cloud Services D O C U M E N T A Ç Ã O D O P I L L A R J U L H O D E

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8th Edition

Banco de Dados II. Administrador de Banco de Dados - DBA. Portela

Introdução Ferramentas Unix MapReduce Outras Ferramentas. Batch Processing. Fabiola Santore. Universidade Federal do Paraná

Revisando Banco de Dados. Modelo Relacional

Informe técnico: Proteção de dados Opções do Veritas NetBackup 6.5 Plataforma do Veritas NetBackup - Proteção de dados de próxima geração

SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS - SGBD

Introdução a Bancos de Dados. - Conceitos - Modelos lógicos e relacional - Álgebra relacional -SQL - Projeto Lógico

1. Conceitos de Bancos de Dados

ORGANIZANDO DADOS E INFORMAÇÕES: Bancos de Dados

Oracle oferece ferramentas para consultas ocasional, geração de relátorios e analise de dados, incluindo o OLAP. O Oracle Application Server

LINGUAGEM, TIPOS DE USUÁRIOS DE SGBD E MODELOS DE DADOS

Guia do usuário. Find Me/Follow Me do Nortel Business Communications Manager. Introdução. Princípios básicos do Find Me/Follow Me.

Sistemas de Banco de Dados

S4F13. Configurações adicionais de contabilidade financeira no SAP S/4HANA ESTRUTURA DO CURSO. Versão do curso: 05 Duração do curso: 4 Dias

Projeto Integrador II. Princípios de Análise e Projeto de Sistemas com UML (livro de Eduardo Bezerra)

Este é o segundo modulo, nele abordaremos os métodos de gerenciamento do Windows Server 2008.

CA Desktop Migration Manager

Versão do documento agosto Usando recursos avançados de geração de relatórios Soluções Ariba On-Demand

Leia-me do Veritas System Recovery 16 Management Solution

Capítulo 1: Introdução às redes comutadas

Modelo do Mundo Real. Abstração. Interpretação

Livro texto: Capítulo 1

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks

Introdução a Banco de Dados. Curso: Engenharia de Produção Disciplina: Informática Aplicada Professor: Rodrigo da Rocha

Infor LN Guia do usuário para material fornecido pelo cliente (MFC)

Arquitetura de um Ambiente de Data Warehousing

Senstar Face Recognition. 1.6 Guia do Usuário

Diferenciação Funcional Taxonomias PRIMAVERA ERP 9.15

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD

Arquitetura de um Ambiente de Data Warehousing

ÁRVORE B+ Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

PLANO DE CONTINGÊNCIA E CONTINUIDADE DOS NEGÓCIOS

Banco de Dados e Aplicações em Negócios: Introdução.

BANCO DE DADOS. Araújo Lima. Jan / Araújo

Bancos de Dados Distribuídos

Bancos de Dados IV. Data Warehouse Conceitos. Rogério Costa

TomTom WEBFLEET Índice remissivo. Let s drive business TM. Nota de lançamento, outubro de 2012

SISTEMA ATENA INSTITUIÇÕES DE ENSINO

Oracle SaaS Public Cloud Services D O C U M E N T A Ç Ã O D O P I L A R J U L H O

Aula 16. Tópicos Especiais II Banco de Dados. Prof. Dr. Dilermando Piva Jr.

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados

IBM Endpoint Manager for Software Use Analysis Versão 9.0. Glossário

Aimetis Reconhecimento facial. 1.3 Guia do Usuário

Manual Converte-MV S_Line

SCM510. Administração de estoques e inventário físico ESTRUTURA DO CURSO. Versão do curso: 15 Duração do curso: 5 Dias

Administrador Documentos. Gestão de Documentos. Título do documento

Oracle Database 12c: Workshop de Administração

ÁRVORE B+ Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Leia-me do Veritas System Recovery 16 Management Solution

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Manual do Usuário: Renovações de Serviços de Suporte na Oracle Store

INTRODUÇÃO A SISTEMAS DE ARQUIVO E GERENCIA DE MEMÓRIA

Gerenciamento de Redes. Alan Santos

Transcrição:

Um artigo técnico da Oracle Setembro de 2009 Particionamento com o Oracle Database 11g Release 2

Particionamento Conceitos... 2 Introdução... 2 Benefícios do particionamento... 2 Particionamento Modelagem para o seu Negócio... 6 Estratégias básicas de particionamento... 6 Extensões de Particionamento... 7 Supervisor de Partição... 8 Visão geral de estratégias de particionamento e extensões... 9 Gerenciamento do ciclo de vida da informação com particionamento... 10 Conclusão... 11

Particionamento Conceitos Introdução O Oracle Partitioning, lançado no Oracle 8.0 em 1997, é uma das funcionalidades mais importantes e bem-sucedidas do banco de dados Oracle, aprimorando o desempenho, o gerenciamento e a disponibilidade de dezenas de milhares de aplicativos. O Oracle Database 11g Release 2 apresenta a 9 a geração de particionamento, permitindo que os clientes modelem ainda mais seus cenários de negócios e tornando o particionamento mais fácil de usar, habilitando-o para o público em geral. O Oracle Database 11g Release 2 continua a melhorar o Oracle Partitioning, protegendo o investimento de nossos clientes em particionamento por mais de uma década. Benefícios do particionamento O particionamento pode proporcionar imensos benefícios a uma grande variedade de aplicações, aprimorando o gerenciamento, o desempenho e a disponibilidade. Não é incomum que, muitas vezes, o particionamento aumente o desempenho de determinadas operações de consultas ou manutenção. Além disso, o particionamento pode reduzir muito o custo total da propriedade de dados, usando uma abordagem de arquivamento em camadas que mantém on-line as informações mais antigas e relevantes, em dispositivos de armazenamento de baixo custo. O Oracle Partitioning permite uma abordagem eficiente e simples, mas muito poderosa, ao considerar o Gerenciamento do Ciclo de Vida da Informação para ambientes grandes. O particionamento também permite que projetistas e administradores de banco de dados resolvam alguns dos mais sérios problemas apresentados por aplicativos de última geração. O particionamento é uma ferramenta básica para construir sistemas de vários terabytes ou sistemas com requisitos de disponibilidade extremamente altos. Fundamentos do particionamento O particionamento permite que uma tabela, índice ou tabela organizada por índices, seja subdividida em partes menores. Cada parte do objeto do banco de dados chama-se partição. Cada partição tem seu próprio nome, e pode, opcionalmente, ter suas próprias características de armazenamento. Da perspectiva de um administrador de banco de dados, um objeto particionado tem diversas peças que podem ser administradas de forma coletiva ou individual. Isso dá ao administrador uma considerável flexibilidade no gerenciamento do objeto particionado. Mas do ponto de vista do aplicativo, uma tabela particionada é idêntica a uma tabela não particionada, e não são necessárias modificações ao acessar uma tabela particionada utilizando Comandos SQL DML. 2

Figura 1: Perspectiva do administrador de banco de dados e do aplicativo, de uma tabela particionada Objetos de banco de dados, como tabelas, índices e tabelas organizadas por índices, são particionados utilizando uma 'chave de particionamento', um conjunto de colunas que determina em qual partição estará determinada linha. Por exemplo, a tabela de vendas mostrada na Figura 1 é particionada por faixa da data de venda, utilizando uma estratégia de particionamento mensal e a tabela é vista por qualquer aplicativo como uma tabela 'normal'. Mas o administrador de banco de dados pode administrar e armazenar cada partição mensal individualmente, utilizando possivelmente diferentes camadas de armazenamento, aplicando a compressão de tabela aos dados mais antigos ou armazenar faixas completas de dados mais antigos em tablespaces somente leitura. Independentemente da estratégia escolhida de particionamento de índice, um índice é acoplado ou não com a estratégia subjacente de particionamento da tabela subjacente. A estratégia apropriada de particionamento de índice é escolhida com base nos requisitos da empresa, adequando o particionamento para suportar qualquer tipo de aplicativo. O Oracle Database 11g diferencia entre três tipos de índices particionados. Índices Locais: um índice local é um índice em uma tabela particionada que é acoplada a uma tabela particionada subjacente, 'herdando' a estratégia de particionamento da tabela. Consequentemente, cada partição de um índice local corresponde a uma, e somente uma, partição da tabela subjacente. O acoplamento permite uma manutenção otimizada da partição. Por exemplo, quando uma partição da tabela é eliminada, o Oracle precisa apenas eliminar também o índice correspondente à partição. Não é necessária uma manutenção de índices, que normalmente aumenta os custos. Os índices locais são mais comuns em ambientes de data warehousing. Índices Particionados Globais: um índice particionado global é um índice em uma tabela, particionada ou não, que é particionado utilizando uma chave ou estratégia de particionamento diferente da tabela. Os índices particionados globais podem ser particionados utilizando um particionamento hash ou de faixas e estão desacoplados da tabela subjacente. Por exemplo, a tabela pode ser particionada por faixa por mês e ter doze partições, enquanto um índice nessa tabela poderia ser particionado por faixa utilizando uma chave de particionamento diferente e 3

ter um número diferente de partições. Os índices particionados globais são mais comuns para ambientes de OLTP que para data warehousing. Índices Não particionados Globais: um índice não particionado global é essencialmente idêntico a um índice em uma tabela não particionada. A estrutura de índices não é particionada e é desacoplada da tabela subjacente. Em ambientes de data warehousing, o uso mais comum de índices não particionados globais é para reforçar as restrições de chave primária. Por outro lado, os ambientes de OLTP dependem principalmente de índices não particionados globais. A Oracle também fornece um conjunto abrangente de comandos SQL para gerenciar tabelas de particionamento. Eles incluem comandos para adicionar novas partições, excluir, dividir, mover, juntar, truncar e, opcionalmente, comprimir partições. Particionamento para gerenciamento O Oracle Partitioning permite que tabelas e índices sejam particionados em unidades menores, mais fáceis de gerenciar, permitindo que administradores de banco de dados possam adotar uma abordagem de "dividir e conquistar" no gerenciamento de dados. Com o particionamento, as operações de manutenção podem concentrar-se em determinadas partes das tabelas. Por exemplo, um administrador de banco de dados pode comprimir uma única partição contendo os dados do ano de 2006 de uma tabela, em vez de comprimir toda a tabela. Para operações de manutenção em todo um objeto de banco de dados, é possível realizar essas operações por partição, dividindo assim o processo de manutenção em blocos mais fáceis de administrar. Uma utilização típica do particionamento para gerenciamento é suportar um processo de carga em 'janela contínua' em um data warehouse. Suponha que um administrador de banco de dados carrega novos dados em uma tabela diariamente. Essa tabela poderia ser particionada por faixa de modo que cada partição contenha um dia de dados. O processo de carga é simplesmente a adição de uma nova partição. Adicionar uma única partição é muito mais eficiente que modificar toda a tabela, pois o administrador de banco de dados não necessita modificar qualquer outra partição. Outra vantagem de utilizar o particionamento é no momento de remover dados, pois toda uma partição pode ser eliminada, o que é muito rápido e eficaz, em comparação a excluir cada linha individualmente. Particionamento para desempenho Ao limitar a quantidade de dados a serem examinados ou manipulados, o particionamento proporciona diversos benefícios de desempenho. Esses recursos incluem: Compactação do Particionamento: a compactação do particionamento (também chamada de eliminação da partição) é a forma mais simples e também a mais substancial de aumentar o desempenho utilizando o particionamento. A compactação da partição é, muitas vezes, capaz 4

de aumentar o desempenho da consulta. Por exemplo, suponha que um aplicativo contém uma tabela PEDIDOS contendo um registro histórico dos pedidos, e que essa tabela foi particionada por dia. Uma consulta solicitando pedidos de uma semana somente irá acessar sete partições da tabela PEDIDOS. Se a tabela contém dois anos de dados de histórico, essa consulta irá acessar sete partições em vez de 730 partições. Potencialmente, essa consulta poderia ser executada 100 vezes mais rapidamente, simplesmente em função da compactação da partição. A compactação da partição funciona com todos os demais recursos de desempenho da Oracle. O Oracle utilizará a compactação de partição em conjunto com qualquer técnica de indexação, técnica de junção ou método de acesso paralelo. Junções por Partição: o particionamento também pode aumentar o desempenho de junções de várias tabelas, utilizando uma técnica chamada de junções por partição. As junções por partição podem ser aplicadas quando duas tabelas são unidas e ao menos uma dessas tabelas é particionada na chave de junção. As junções por partição dividem uma junção maior em junções menores de conjuntos de dados 'idênticos' para as tabelas unidas. 'Idêntico' é definido aqui como tratando exatamente do mesmo conjunto de valores de chave de particionamento nos dois lados da junção, garantindo assim que somente uma junção desses conjuntos de dados 'idênticos' produzirá um resultado e os demais conjuntos de dados não deverão ser considerados. O Oracle utiliza tabelas (físicas) já igualmente particionadas para a junção ou redistribui (= reparticiona ) de forma transparente uma tabela durante a execução, para criar conjuntos de dados igualmente particionados correspondentes ao particionamento da outra tabela, completando toda a junção em menos tempo. Isso oferece benefícios significativos de desempenho tanto na execução em série como paralela. Particionamento para disponibilidade Os objetos de banco de dados particionados permitem a independência da partição. Essa característica de independência da partição pode ser uma parte importante de uma estratégia de alta disponibilidade. Por exemplo, se uma partição de uma tabela particionada não está disponível, todas as demais partições da tabela permanecem on-line e disponíveis. O aplicativo pode continuar a executar consultas e transações em relação a essa tabela particionada, e essas operações do banco de dados serão executadas com sucesso se não for necessário acessar a partição não disponível. O administrador de banco de dados pode especificar que cada partição seja armazenada em um tablespace separado; e isso permitirá ao administrador realizar operações de backup e recuperação em cada partição individual, independentemente das demais partições na tabela. Portanto, no caso de um desastre, o banco de dados poderá ser recuperado com apenas as partições compostas por dados ativos e os dados inativos nas outras partições poderão então ser recuperados quando for mais conveniente. Diminuindo assim o tempo de inatividade do sistema. Além disso, o particionamento pode reduzir o tempo de inatividade programado. Os ganhos de desempenho proporcionados pelo particionamento podem permitir que os administradores de banco de dados realizem operações de manutenção em grandes objetos de banco de dados em janelas de lotes relativamente pequenas. 5

Particionamento Modelagem para o seu Negócio O Oracle Database 11g Release 2 proporciona o conjunto mais abrangente de estratégias de particionamento, permitindo a um cliente alinhar de forma ideal a subdivisão de dados com as exigências reais da empresa. Todas as estratégias de particionamento disponíveis dependem de métodos fundamentais de distribuição de dados que podem ser usados para tabelas únicas (um nível) ou tabelas particionadas compostas. Além disso, a Oracle proporciona uma variedade de extensões de particionamento, aumentando a flexibilidade da seleção da chave de particionamento, proporcionando a criação automática da partição quando necessário e orientando sobre estratégias de particionamento para objetos não particionados. Estratégias básicas de particionamento O Oracle Partitioning oferece três métodos fundamentais de distribuição de dados que controlam como os dados irão realmente ser posicionados nas diversas partições individuais, que são: Faixa: os dados são distribuídos com base em uma faixa de valores da chave de particionamento (para uma coluna de datas como a chave de particionamento, a partição 'Janeiro-2007' contém linhas com os valores de chave de particionamento entre '01-JAN-2007' e '31-JAN-2007'). A distribuição de dados é uma continuação sem qualquer vazio e o limite inferior de uma faixa é definido automaticamente pelo limite superior da faixa anterior. Lista: a distribuição de dados é definida por uma lista de valores da chave de particionamento (para uma coluna de região como a chave de particionamento, a partição 'América do Norte' poderá conter os valores 'Canadá', 'EUA' e México). Uma partição especial 'PADRÃO' poderá ser definida para capturar todos os valores de uma chave de partição que não seja definida explicitamente por qualquer uma das listas. Hash: um algoritmo de hash é aplicado à chave de particionamento para determinar a partição de determinada linha. Diferentemente dos outros dois métodos de distribuição de dados, o hash não fornece nenhum mapeamento lógico entre os dados e qualquer partição. Usando os métodos de distribuição de dados comentados acima, uma tabela pode ser particionada como uma tabela particionada simples ou composta: Particionamento único (um nível): uma tabela é definida especificando uma das metodologias de distribuição de dados, utilizando uma ou mais colunas como a chave de particionamento. Por exemplo, considere uma tabela com uma coluna de números como a chave de particionamento e duas partições 'menos_de_quinhentos' e 'menos_de_mil', a partição 'menos_de_mil' contém linhas onde a seguinte condição é verdadeira: 500 <= Chave de particionamento <1000. É possível especificar tabelas com particionamento de Faixa, Lista e Hash. 6

Particionamento Composto: combinações de dois métodos de distribuição de dados são utilizadas para definir uma tabela particionada composta. Primeiro, a tabela é particionada pelo primeiro método de distribuição de dados e depois cada partição é subdividida em subpartições, utilizando um segundo método de distribuição de dados. Todas as subpartições juntas, de determinada partição, representam um subconjunto lógico dos dados. Por exemplo, uma tabela particionada composta de faixa-hash primeiro é particionada por faixa e depois cada faixa-partição individual é subparticionada utilizando a técnica de particionamento hash. As técnicas de particionamento composto disponíveis são faixa-hash, faixa-lista, faixa-faixa, lista-faixa, lista-lista, lista-hash e, uma novidade no Oracle Database 11g Release 2, hash-hash. As tabelas organizadas por índices (IOTs) podem ser particionadas por faixa, hash e lista. O particionamento composto não é suportado para IOTs. Extensões de Particionamento Além das estratégias básicas de particionamento, o Oracle proporciona extensões de particionamento. As extensões no Oracle Database 11g estão voltadas principalmente para dois objetivos: (a) Ampliar significativamente o gerenciamento da tabela particionada. (b) Estender a flexibilidade ao definir uma chave de particionamento. As extensões são: Particionamento por Intervalo: uma nova estratégia de particionamento no Oracle Database 11g, o particionamento por intervalo estende os recursos do método de faixa para definir faixas igualmente particionadas utilizando uma definição de intervalo. Em vez de especificar faixas individuais explicitamente, o Oracle criará qualquer partição automaticamente conforme necessário sempre que os dados para uma partição forem inseridos pela primeira vez. O particionamento por intervalo aprimora imensamente o gerenciamento da tabela particionada. Por exemplo, é possível definir uma tabela particionada por intervalos de modo que o Oracle crie uma nova partição para cada mês do ano civil, logo será criada automaticamente uma partição para 'setembro 2007' quando o primeiro registro desse mês for inserido no banco de dados. As técnicas disponíveis para uma tabela particionada por intervalos são Intervalo, Intervalo-Lista, Intervalo-Hash e Intervalo-Faixa. Particionamento REF: o Oracle Database 11g permite particionar uma tabela aproveitando um relacionamento pai-filho existente. A estratégia de particionamento da tabela pai é herdada pela tabela filho sem a necessidade de armazenar as colunas de chave de particionamento da tabela pai na tabela filho. Sem o Particionamento REF seria necessário duplicar todas as colunas de chave de particionamento da tabela pai para a tabela filho para poder aproveitar a mesma estratégia de particionamento. Por outro lado, o Particionamento REF permite particionar naturalmente as tabelas conforme o modelo de dados lógicos sem necessidade de armazenar as colunas de chave 7

de particionamento, reduzindo assim a sobrecarga manual de desnormalização e economizando espaço. O Particionamento REF também herda, da tabela pai para a tabela filho, e de forma transparente, todas as operações de manutenção da partição que alteram o formato lógico da tabela. Além disso, o Particionamento REF permite automaticamente junções por partição para as partições iguais de tabelas pai e filho, aumentando o desempenho dessa operação. Por exemplo, a tabela pai PEDIDOS é particionada por faixa na coluna DATA_PEDIDO; sua tabela filho ITENS DO PEDIDO não contém a coluna DATA_PEDIDO, mas pode ser particionada por referência para a tabela PEDIDOS. Se a tabela PEDIDOS for particionada por mês, todos os itens do pedido para pedidos em 'Jan-2009' serão armazenados na mesma partição na tabela ITENS DO PEDIDO, particionada por igual como a tabela pai PEDIDOS. Se a partição 'Fev- 2009' for adicionada à tabela PEDIDOS, o Oracle irá adicionar de forma transparente a partição equivalente à tabela ITENS DO PEDIDO. Todas as estratégias básicas de particionamento estão disponíveis para o Particionamento REF. Particionamento baseado em coluna virtual: nas versões anteriores do Oracle, só era possível particionar uma tabela se a chave de particionamento existisse fisicamente na tabela. As colunas virtuais, uma nova funcionalidade no Oracle Database 11g, remove essa restrição e permite que a chave de particionamento seja definida por uma expressão, utilizando uma ou mais colunas existentes na tabela, e armazenando a expressão apenas como metadados. O particionamento foi aprimorado de forma a permitir definir uma estratégia de particionamento em colunas virtuais, permitindo assim uma correspondência mais abrangente das exigências da empresa. Não é incomum ver colunas sendo sobrecarregadas com informações, por exemplo, um ID de conta de 10 dígitos pode incluir informações da agência da conta e também os três primeiros dígitos. Com a extensão do Particionamento baseado em coluna virtual, a tabela CONTAS contendo uma coluna ID_CONTA pode ser estendida com uma coluna virtual (derivada) AGENCIA_CONTA obtida a partir dos três primeiros dígitos da coluna ID_CONTA, que se torna a chave de particionamento dessa tabela. O Particionamento baseado em coluna virtual é suportado em todas as estratégias básicas de particionamento. As colunas virtuais podem também ser usadas com particionamento por intervalos, assim como a chave de particionamento das tabelas REF particionadas. Supervisor de Partição A partir do Oracle Database 11g release 2, o SQL Access Advisor foi aprimorado para gerar recomendações de particionamento, além das que já cria para índices, visualizações materializadas e logs de visualizações materializadas. As recomendações geradas pelo SQL Access Advisor, sejam apenas para particionamento ou de forma holística, exibirão os ganhos previstos de desempenho resultantes de sua implementação. O script gerado pode ser implementado manualmente ou enviado a uma fila no Oracle Enterprise Manager. 8

Com a extensão da orientação de particionamento, os clientes não só podem receber recomendações específicas para o particionamento, mas também a mais abrangente recomendação holística do SQL Access Advisor, aprimorando o desempenho coletivo das declarações SQL em geral. O Partition Advisor, integrado ao SQL Access Advisor, é parte do Tuning Pack da Oracle, uma opção extra licenciável. Ele pode ser utilizado a partir do Enterprise Manager ou via interface de linha de comando. Visão geral de estratégias de particionamento e extensões A tabela a seguir fornece uma visão geral conceitual de todas as estratégias básicas de particionamento disponíveis no Oracle Database 11g Release 2: Estratégia de particionamento Particionamento por faixa Particionamento por lista Distribuição de dados Baseado em faixas consecutivas de valores. Baseado em listas de valores não ordenados. Amostra de caso de negócios Faixa de tabela de pedidos particionada por data_pedido Tabela de pedidos, lista particionada por país Particionamento Hash Baseado em um algoritmo hash. Tabela de pedidos hash, particionada por id_cliente Particionamento composto Faixa-Faixa Faixa-Lista Faixa-Hash Lista-Lista Lista-Faixa Lista-Hash Hash-Hash Baseada em uma combinação de duas das técnicas básicas mencionadas acima, de Particionamento por Faixa, Lista, Hash e Intervalo A tabela de pedidos é particionada por faixa, por data_pedido e subparticionada por hash em id_cliente A tabela de pedidos é particionada por faixa, por data_pedido e subparticionada por faixa em data_envio 9

Além das estratégias de particionamento disponíveis, o Oracle Database 11g Release 2 proporciona as seguintes extensões de particionamento: Extensão de particionamento Particionamento por intervalo Intervalo Intervalo-Faixa Intervalo-Lista Intervalo-Hash Particionamento REF Particionamento baseado em coluna virtual Descrição Uma extensão à Partição por faixas. Definida por um intervalo, proporcionando faixas da mesma largura. Com exceção da primeira partição, todas as partições são criadas automaticamente por demanda quando os dados correspondentes são recebidos. O particionamento para uma tabela filho é herdado da tabela pai por meio de um relacionamento de chave primária-chave externa. As chaves de particionamento não são armazenadas em colunas reais na tabela filho. Definido por uma das técnicas de particionamento discutidas acima e a chave de particionamento baseia-se em uma coluna virtual. As colunas virtuais não são armazenadas em disco, só existem como metadados. Amostra de caso de negócio Tabela de pedidos particionada por data_pedido com um intervalo diário predefinido, iniciando em '01-Jan-2009' (Pai) Faixa da tabela de pedidos particionada por data_pedido e transfere a técnica de particionamento para a tabela (filho) de linhas do pedido. A coluna data_pedido só está presente na tabela pai de pedidos A tabela de pedidos tem uma coluna virtual obtida a partir da região de vendas, baseada nos três primeiros dígitos do número de conta do cliente. A tabela de pedidos é então particionada por lista, por região de vendas. Gerenciamento do ciclo de vida da informação com particionamento O desafio atual de armazenar grandes quantidades de dados com o menor custo possível pode ser atendido de forma ideal utilizando o Oracle Partitioning. A independência das partições individuais é o principal elemento que permite atender à parte on-line de uma estratégia de arquivamento em camadas. Especificamente em tabelas que contêm dados históricos, a importância, e o padrão de acesso, dos dados, depende muito da idade dos dados e o particionamento permite armazenar partições individuais (ou grupos de partições) em diferentes camadas de armazenamento, proporcionando diferentes atributos físicos e pontos de preço. Por exemplo, uma tabela de pedidos contendo dois anos de dados pode ter apenas o trimestre mais recente armazenado em uma cara camada de armazenamento high-end e manter o restante da tabela (quase 90% dos dados) em uma camada de armazenamento de baixo custo. 10

Conclusão Desde sua primeira introdução no Oracle 8.0 em 1997, a Oracle aprimorou a funcionalidade de Particionamento a cada versão, tanto adicionando novas técnicas de particionamento, melhorando a escalabilidade como ampliando os recursos de gerenciabilidade e manutenção. O Oracle Database 11g Release 2 não é diferente oferecendo estratégias aprimoradas de particionamento composto bem como intervalos e Particionamento REF aprimorados. O particionamento é para todos. O Oracle Partitioning pode ampliar muito o gerenciamento, o desempenho e a disponibilidade de praticamente qualquer aplicativo de banco de dados. Como o particionamento é transparente para o aplicativo, ele pode ser facilmente implementado para qualquer tipo de aplicativo, pois não exige alterações caras nem demoradas. Particionamento com o Oracle Database 11g Release 2 Setembro de 2009 Autor: Hermann Baer Oracle do Brasil Sistemas Ltda. Sede no Brasil Av. Alfredo Egydio de Souza Aranha, 100 São Paulo, SP Brasil CNPJ: 59.456.277/0001-76 Fone: (0xx11) 5189-1000 oracle.com Copyright 2009, Oracle e/ou suas afiliadas. Todos os direitos reservados. Este documento é fornecido apenas para fins informativos e seu conteúdo está sujeito a alteração sem aviso prévio. Não há garantias de que este documento esteja isento de erros e nem que esteja sujeito a outras garantias ou condições legais, expressas ou implícitas, incluindo garantias ou condições de comercialização e uso para um propósito específico. A Oracle isenta-se de qualquer responsabilidade em relação a este documento, sendo que ele não representa qualquer obrigação contratual direta ou indireta. Este documento não pode ser reproduzido ou transmitido de qualquer forma ou através de qualquer meio, seja eletrônico ou mecânico, para qualquer objetivo, sem a permissão expressa por escrito da Oracle. Oracle é uma marca comercial registrada da Oracle Corporation e/ou de suas empresas afiliadas. Outros nomes podem ser marcas comerciais de seus respectivos proprietários. 0109 11