Thursday, January 14, 2010

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

Continuando o post anterior sobre Capacity Planning , vamos hoje fazer os cálculos para índice usando PL/SQL e ver como se faz isso via EM para índice e tabela.


Estimando tamanho do índice antes de sua criação

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@jamaica ~]$ sqlplus dbajcc

SQL*Plus: Release 10.2.0.4.0 - Production on Wed Jan 13 21:59:31 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Enter password:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

dbajcc@OCADB on 13-JAN-10 >create table tst_index_cost as select owner,index_name,index_type from dba_indexes ;

Table created.
Elapsed: 00:00:03.29

dbajcc@OCADB on 13-JAN-10 >
dbajcc@OCADB on 13-JAN-10 >exec dbms_stats.gather_table_stats(ownname => 'DBAJCC', tabname => 'TST_INDEX_COST' , estimate_percent => 100);

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.12

dbajcc@OCADB on 13-JAN-10 >
dbajcc@OCADB on 13-JAN-10 >
dbajcc@OCADB on 13-JAN-10 >
dbajcc@OCADB on 13-JAN-10 >



declare
2
3 ub number;
4 ab number;
5
begin
6 DBMS_SPACE.CREATE_INDEX_COST ('create unique index tst_idx001 on dbajcc.tst_index_cost(owner,index_name) tablespace users_ind ',ub,ab) ;
7
DBMS_OUTPUT.PUT_LINE('Used Bytes: ' || TO_CHAR(ub));
8 DBMS_OUTPUT.PUT_LINE('Alloc Bytes: ' || TO_CHAR(ab));
9 10 end ;
11 12 / 13

Used Bytes: 64179
Alloc Bytes: 131072

PL/SQL procedure successfully completed.

Elapsed: 00:00:01.21
dbajcc@OCADB on 13-JAN-10 >

Como visto o nosso índice tst_idx001 para a tabela tst_index_cost usará 64179 bytes ou 62,7KB para dados e ocupará 131072 bytes ou 128 KB dentro da tablespace users_ind .



Oks?!

Estimando tamanho do índice via EM


No EM é muito simples também :




























Dentro da seção acima seguir acessando a tab SCHEMA ,dentro de SCHEMA procurar por INDEXES :




















Agora vamos fazer o mesmo que fizemos usando PL/SQL para estimar o tamanho do Index tst_idx001 :

Observe o passo-a-passo de cada tela :
























Voltando a tab "General" usar o botão bem sugestivo "Estimate Index Size" :






















Vamos ver o que foi gerado :

















Podem ver que é o mesmo resultado da etapa anterior usando o bloco PL/SQL 62,67KB ou 62,7KB .

Para estimar o tamanho de uma tabela é tão simples como fazer paara índices :

- preencha as informações na tab TABLES dentro da seção SCHEMA e acesse o botão "Estimate table size" .

Não vou colocar o exemplo para não ficar extenso demais.

É isso.

Julio Cesar Correa


No comments: