Fábio, boa tarde.

 

Tenho uma tabela em meu sistema, digamos, um pouco parecida com a sua. Tenho 
pouca experiência com tunning (comecei a desenvolver o meu lado dba a partir do 
meio desse ano), mas acho que aprendi coisas boas e acho que posso ajudá-lo, 
porém peço até que pessoas mais experientes, critiquem e opinem junto a mim.

 

O que eu posso lhe sugerir é (e o que eu acho mais conveniente):

 

1 – apesar de os indices não conterem muitos extents, acho que seria legal (até 
mesmo pelo tamanho dos mesmos) você aumentar de 64MB para 128MB ou 256MB.

2 – Sobre os índices, poderia melhor dispor os dados sobre os índices, a 
formatação ficou um pouco ruim e não dá pra entender qual campo é referente ao 
valor do select que você fez. Informe também o tipo dos índices (BITMAP, 
NORMAL, etc). Gostaria de saber a quantidade total de linhas da tabela e a 
quantidade de valores distintos pras colunas dos índices.

 

Poderia dar alguns exemplos do que é feito por exemplo nas operações de sua 
rotina que demora 3 horas?

 

Grande abraço.

 

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Fábio 
Telles Rodriguez
Enviada em: terça-feira, 11 de novembro de 2008 16:05
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Ajuste de desempenho em índices

 

Senhores, tenho uma tabela num software de folha de pagamento de 9 mil
funcionários que já tem quase 90 milhões de linhas e cresce rapidamente.
Gostaria de algumas dicas para melhorar a performance desta tabela, já que
ela é central no cálculo em batch, o que leva hoje umas 3 horas.
Infelizmente eu não posso alterar a aplicação pois é um pacote de terceiros,
o máximo que posso fazer são sugestões se eu encontrar algo muito grave.

1) Servidor: Oracle 10.2.0.3 SE rodando em Red Hat Linux 4.6.
2) Discos: 3x 146 GB SCSI em RAID 5 (eu sei, é ruim, mas só vou conseguir
melhorar isso no ano que vem).
3) Tabela: quase 90 milhões de registros alocado num único tablespace
ocupando hoje 3,5 GB. O tablespace dele utiliza alocação automática e está
distribuído em 5 datafiles de 800MB com crescimento automático.

Segue a descrição da tabela:
desc resultado;

Name Null Type

----------------------------------------------------
ID_RESULTADO NOT NULL NUMBER
CONTA NOT NULL NUMBER

TIPO_LANCAMENTO NOT NULL
CHAR(1)
CENTRO_CUSTO NOT NULL VARCHAR2(10)
QUANTIDADE_RESULTADO NUMBER(11,2)

VALOR_RESULTADO NOT NULL NUMBER(13,2)
LANCAMENTO_MANUAL CHAR(1)

A chave primária está nos campos: id_resultado, conta, tipo_lancamento e
centro_custo

4) índices
* ix_resultado_1 (conta) - Espaço ocupado: 1,5GB
* ix_resultado_2 (centro_custo) - Espaço ocupado: 1,7GB
* ix_resultado_3 (id_resultado) - Espaço ocupado: 1,9GB
* pk_resultado (id_resultado, conta, tipo_lancamento, centro_custo) - Espaço
ocupado: 2,8GB

Índice Tablespace blevel leaf clustering
num
distinct
blocks factor
rows keys
----------------------------------------------------------
IX_RESULTADO_1 AHB_RESULTADO_INDEX_01 2 174580 30966921
83472061 253
IX_RESULTADO_2 AHB_RESULTADO_INDEX_02 3 190047 5492413
80199857 356
IX_RESULTADO_3 AHB_RESULTADO_INDEX_03 3 195895 5024216
83688346 3266453
PK_RESULT AHB_RESULTADO_PK 3 323181 22717985
83373902 83373902

*Pergunto:*
* Valeria a pena utilizar alocação uniforme, ao invés da automática?
Atualmente os meus extents estão todos com 64MB e com cerca de 30 a 40
extents por índice.
* Nos índices IX_RESULTADO_1 e IX_RESULTADO_2 o meu número de distinct keys
é muito baixo. Será que não estou com dois índices inúteis que apenas estão
ajudando a diminuir o desempenho das minhas atualizações?
* Valeria a pena tentar particionar os índices, mesmo não tendo um campo
como "data" e armazenando todos os tablespaces no mesmo RAID?
* Após realizar um REBUILD nos índices, o clustering factor diminuiu apenas
uns 5%. É normal isso?
* Com o blevel em 3, justificaria-se utilizar um tamanho de bloco maior?
Mesmo em um sistema transacional?

Senhores, desculpa se fui impertinente em minhas perguntas, estou estudando
mais a parte de tuning e gostaria de aprender a fazer as coisas da melhor
forma possível na prática.

Agradeço a qualquer contribuição.

Atenciosamente,
Fábio Telles
-- 
blog: http://www.midstorm.org/~telles/ <http://www.midstorm.org/%7Etelles/>
e-mail / jabber: [EMAIL PROTECTED] <mailto:fabio.telles%40gmail.com> 

[As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]

Responder a