- Este tópico contém 27 respostas, 4 vozes e foi atualizado pela última vez 13 anos, 11 meses atrás por
mpvargas.
-
AutorPosts
-
15 de dezembro de 2011 às 3:40 pm #102189
mpvargas
ParticipanteMeu SO é LINUX CentOs 5
Tenho 8 discos de 140GB distribuidos em 4 filesystems com RAID 1 (Espelhados) e separei conforme abaixo
filesystem / => instalação do Oracle, tbs de sistema, controlfile1
filesystem /dados => tbs de dados, controlfile2
filesystem /backup => tbs de indices, bkp export, controlfile3
filesystem /logs => redo logs, archive logs, bkp rman15 de dezembro de 2011 às 3:57 pm #102192mpvargas
ParticipanteOutro detalhe importante…
as minhas principais tabelas são particionadas (range de data)15 de dezembro de 2011 às 4:23 pm #102193mpvargas
ParticipanteFábio
enviei pra vc um novo relatório AWR referente a coleta de dados de hoje das 9 às 10h
15 de dezembro de 2011 às 5:59 pm #102197fabiogalera
ParticipanteAgora sim, parece ser mais real esse AWR.
Realmente o seu problema é os FULL SCAN, nesse relatório mostra que 54% da Base de Dados esperou por “db file scattered read”, que é acesso full em tabelas.
MSIGA.SE5010 é a sua tabela mais utilizada, especificamente a partição PT01 … ela corresponde a 66% das Leituras Físicas e 50% das lógicas;
O que você pode fazer:
– Tirar um relatório ASH para esse mesmo periodo, para identificar quais queries tiveram esse evento;
– Utilizar paralelismo nessa tabela, mudando o parâmetro DEGREE para mais de 1;
– 30% dos cache buffer chains estão recebendo “miss”, verifique os atributos das tablespaces, como EXTENT MANAGEMENT e SEGMENT SPACE MANAGEMENT, para todas as tablespace e posta aqui;
– Execute abaixo:
select filetype_name, asynch_io, access_method, retries_on_error
from v$iostat_file;
Aguardo resposta =)
15 de dezembro de 2011 às 10:58 pm #102204mpvargas
ParticipanteO que você pode fazer:
– Tirar um relatório ASH para esse mesmo periodo, para identificar quais queries tiveram esse evento;Fábio, essa tabela é de movimentação bancária então queries nessa tabela rodam todo o tempo
- Utilizar paralelismo nessa tabela, mudando o parâmetro DEGREE para mais de 1;
Esse parâmetro é possível mudar pra cada tabela ou tem que ser pra instancia
- 30% dos cache buffer chains estão recebendo “miss”, verifique os atributos das tablespaces, como EXTENT MANAGEMENT e SEGMENT SPACE MANAGEMENT, para todas as tablespace e posta aqui;
Com relação a query eu não encontrei a view ou tabela… pesquisei na dba_views e na dba_tables mas não encontrei
15 de dezembro de 2011 às 11:46 pm #102207fabiogalera
Participante1-) Gere o ASH Report, apenas para termos mais análises (use o mesmo periodo)
@?/rdbms/admin/ashrpt
2-) Eu disse parâmetro, na verdade é atributo das Tabelas. Você consegue setar que o Oracle trabalhe com Paralelismo para todas a queries que consultam a específica tabela.
obs: não use isso ainda !!! Aguarde um pouco.
ALTER TABLE<
table> PARALLEL (DEGREE 8);
3-) O que te pedi esta na DBA_TABLESPACES
set lines 200
col tablespace_name for a30
select tablespace_name, BLOCK_SIZE, STATUS, SEGMENT_SPACE_MANAGEMENT, EXTENT_MANAGEMENT from dba_tablespaces;4-) Me mande o retorno disso:
select filetype_name, asynch_io, access_method, retries_on_error
from v$iostat_file;
16 de dezembro de 2011 às 5:30 pm #102214mpvargas
ParticipanteFábio
mandei pra vc os relatórios por emailmas esse deu erro
select filetype_name, asynch_io, access_method, retries_on_error
from v$iostat_file;Error starting at line 2 in command:
select filetype_name, asynch_io, access_method, retries_on_error
from v$iostat_file
Error at Command Line:3 Column:5
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 – “table or view does not exist”
*Cause:
*Action:16 de dezembro de 2011 às 10:32 pm #102235fabiogalera
Participanteshow parameter async
show parameter filesystemCentOS é baseado em RHEL:
ldd $ORACLE_HOME/bin/oracle | grep libaio
nm $ORACLE_HOME/bin/oracle | grep io_getevent
obs: caso esse ultimo comando venha a não retornar o prompt, CRTL+C imediatamente =)
19 de dezembro de 2011 às 8:33 pm #102260mpvargas
ParticipanteSQL> show parameter async
NAME TYPE VALUE
disk_asynch_io boolean TRUE
tape_asynch_io boolean TRUESQL> show parameter filesystem
NAME TYPE VALUE
filesystemio_options string none
$ ldd $ORACLE_HOME/bin/oracle | grep libaio
libaio.so.1 => /usr/lib64/libaio.so.1 (0x0000002a96f2c000)$ nm $ORACLE_HOME/bin/oracle | grep io_getevent
w io_getevents@@LIBAIO_0.419 de dezembro de 2011 às 8:34 pm #102261fabiogalera
ParticipanteExecuta também
mount
e nos cola o resultado.
19 de dezembro de 2011 às 10:03 pm #102264mpvargas
Participanteaí está
#mount
/dev/cciss/c0d0p1 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/cciss/c0d1p1 on /dados type ext3 (rw)
none on /dev/shm type tmpfs (rw)
/dev/cciss/c0d2p1 on /logs type ext3 (rw)
/dev/cciss/c0d3p1 on /backup type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)19 de dezembro de 2011 às 10:14 pm #102265fabiogalera
Participantealter system set filesystemio_option = setall;
Lembre-se de setar isso no parâmetro de inicialização. Isso ajudará nas leituras físicas da Base de Dados, abilitando leituras assincronas (paralelas).
É um parâmetro dinâmico, porém, eu aconselho a fazer um reboot na Base de Dados depois de alterar esse parâmetro.
Depois de alterado, nos diga se ocorreu alguma melhoria.
23 de dezembro de 2011 às 5:05 pm #102312mpvargas
ParticipanteFábio,
ainda não alterei o parâmetro pela dificuldade de conseguir uma “janela” para reiniciar o banco… mas assim que o fizer eu posto aqui no tópico
muito obrigado pela ajudaFELIZ NATAL E UM ANO NOVO DE MUITO SUCESSO
Abs
Marcelo Vargas
-
AutorPosts
- Você deve fazer login para responder a este tópico.