Wednesday, January 13, 2010

Oracle 10g - Capacity Planning for Database Objects - Oracle 10g and later - Part 1

Introdução
Segundo a documentação da Oracle existe duas formas de fazer o "Capacity Planning" usando o próprio Oracle Database :

- Usando a package DBMS_SPACE via código PL/SQL ou
- EM Database Control ou Grid Control

Na própria documentação do Oracle 10g ou 11g temos  exemplos de como fazer isso.

Vamos abordar primeiro via PL/SQL no Oracle 10gr2 - 10.2.0.4 .

É possível estimar tamanho para Tabela e Índice mas para ser prático faremos somente de tabelas,que é normalmente onde se concentrará os esforços para estimar tamanho de schemas e de banco de dados que residirão nos tablespaces.Isto facilitará a organização nos tablespaces e arquivos de dados.

Estimativa para tabelas

Vamos usar um exemplo de uma tabela de pedidos com 7.000 pedidos diários.
A nossa tabela MY_ORDERS(qualquer semelhança é mera coincidência) tem a seguinte estrutura :


 ORDER_ID     NOT NULL NUMBER(12)
 ORDER_DATE   NOT NULL TIMESTAMP(6) WITH LOCAL TIME ZONE
 ORDER_MODE   VARCHAR2(8)
 CUSTOMER_ID  NOT NULL NUMBER(6)
 ORDER_STATUS NUMBER(2)
 ORDER_TOTAL  NUMBER(8,2)
 SALES_REP_ID NUMBER(6)
 PROMOTION_ID NUMBER(6)

Abaixo o resultado para o nosso teste :




























Podemos ver na imagem acima que esta tabela crescerá  303104 bytes por dia segundo a média de pedidos/dia e considerando  que este numero de pedidos diários não mudará teremos 8,67MB ou 9MB por mês a mais em dados.O tamanho total ocupado pela nossa tabela ORDERS na tablespace será de 327680 bytes inicialmente ou 320 KB .Relativamente pequeno.Mas se olharmos para um modelos de dados digamos que de médio porte veremos que fica mais trabalhoso fazer as estimativas para um determinado banco de dados.

No próximo exemplo faremos a estimativa de índices usando PL/SQL  e estimativa de tabela e índice usando EM.

Abs,

Julio Cesar Correa


No comments: