sábado, 23 de novembro de 2013

ORACLE STATSPACK

STATSPACK


  • Criar usuário statspack


  • select * from stats$level_description order by snap_level;

  • pacote StatsPack : utilizado para realizar o snapshot (cada coleta).
  • conectar como PERFSTAT
SQL> execute StatsPack.snap;

  • Criando relatório
    • @...RBDMS\admin
“Statspack” 

STATSPACK – Definição
- Utilitário para identificar problemas de desempenho no banco de dados
- É necessário instalar em cada banco de dados que será monitorado
- Para instalar é necessário executar scripts  

STATSPACK - Instalação
- Script:
- Conectar como SYS
/rdbms/admin/spcreate.sql
- São utilizados os scripts:
- spcusr.sql -> Cria usuário
- spctab.sql -> Cria tabelas e sinônimos
- spcpkg.sql -> Cria pacotes e procedures
- São gerados resultados .lis é interessante analisar os arquivos 
- Durante a execução do script é necessário 
informar Tablespace Default e Temporary
- Muitos objetos são criados para o usuário 
perfstat
- Usuário perfstat possui muitos privilégios 
adminstrativos. Cuidado.
- Altere a senha do usuário
STATSPACK - Instalação 
- Parâmetro TIMED_STATISTICS = TRUE 
- Cada coleta é denominada Snapshot
- 0 a 10 são os níveis da coleta. Quanto maior o 
nível mais informações, porém, mais tempo irá 
levar para terminar a coleta. Padrão é nível 5.

select * from stats$level_description order by snap_level;

STATSPACK – Pré-Coleta 
- Pacote StatsPack: é utilizado para alterar os 
parâmetros de coleta
- Alguns parâmetros:
i_snap_level = Nível do snapshot
i_ucomment = Comentário do snapshot
i_modify_parameter = True, salva essas alterações para as próximas coletas
exec statspack.snap ( i_snap_level => 6, i_modify_parameter => 'true‘ );

STATSPACK – Pré-Coleta 
-  Pacote StatsPack: é utilizado para realizar o 
snapshot (cada coleta)
- Conectar como PERFSTAT
SQL> execute StatsPack.snap;
STATSPACK – Coletando Estatísticas 
- Analisando quantos Snapshot existem
select name,snap_id,
to_char(snap_time,'DD.MM.YYYY:HH24:MI:SS') 
from stats$snapshot;

- Criando o Relatório
@...rdbms\admin\spreport.sql
STATSPACK – Gerando Relatorio 
- Abra o arquivo com o resultado
- O Resultado é composto por sessões
- Para chegar a uma conclusão é necessário 
analisar um conjunto de informações
STATSPACK – Resultado 
- Header
Informações básicas do banco de dados
- Load Profile
Principais cargas existentes
- Top 5 Wait Events
Cinco principais eventos
STATSPACK – Sessions 
- Instance Efficiency
O quanto a instância está sendo eficiente
- SQL ordered by Gets
Principais SQL que mais consumiram recurso
- Instance Activity Stats
Comportamento dos eventos executados na 
instância como um todo
STATSPACK – Sessions 
- Tablespace I/O Stats
Tablespaces mais utilizadas
- Buffer Pool Statistics
Eventos mais detalhados da SGA
- Roolback Segment Stats
Atividades no segmento de rollback
STATSPACK – Sessions 
- Latch Activity
Atividades do latch (bloqueios em memória)
- Dictionary Cache Stats
Estatisticas do dicionário de dados e biblioteca
- init.ora Parameters
Exibe os parâmetros do init.ora que estão com 
o valor diferente do padrão
STATSPACK – Sessions 
STATSPACK – Eliminar Snapshot
- Script:
/rdbms/admin/sppurge.sql 
STATSPACK – Dicas
- Os arquivos do Statspack estão no subdiretório 
/rdbms/admin e começam com as letras sp.
- Crie um tablespace específico para armazenar o 
Statspack
- Mude a senha da conta Perfstat
- Bloqueie esta conta quando você não for 
utilizar esse recurso 
STATSPACK – Dicas
- Comece com o nível 5 e use um nível maior 
para investigar melhor
- Evite coletar um intervalo de informações com 
o Statspack quando houve parada do banco
- Após a análise do resultado é interessante 
eliminar o snapshot desnecessário 
STATSPACK – Dicas
- Fique atendo entre um período e outro, 
mudanças bruscas merecem investigação
- Um das principais sessões a ser analisada é a 
Top 5 Wait Events 
AWR
“Automatic Workload Repository” 
AWR – Definição
- Utilitário para identificar problemas de 
desempenho no banco de dados
- Os snapshots dos AWR são coletados 
automaticamente a cada hora pelo processo de 
background MMON. 
- Para reduzir o uso de espaço em disco, os 
dados coletados são eliminados a cada 7 dias 
AWR – Retenção
- Tanto o tempo de retenção quanto a freqüência 
de coleta dos snapshots podem ser modificados 
pelo usuário
- Para ver as configurações atuais execute:
select snap_interval, retention
from dba_hist_wr_control; 
AWR – Recomendação
- Caso esteja usando o relatório do AWR para 
detectar gargalos, a recomendação da Oracle é 
que cada snapshot seja coletado a cada 15 
minutos
- Para alterar o período entre os snapshots para 
15 minutos e a retenção para 2 dias basta 
executar o comando do próximo slide
- Os parâmetros são especificados em minutos. 
AWR – Alterar o intervalo
begin
dbms_workload_repository.modify_snapshot_settings
(
interval => 15,
retention => 2*24*60
);
end;
select snap_interval, retention
from dba_hist_wr_control; 
AWR – Coleta Manual
- Além da coleta automática, é possível efetuar a 
coleta das estatísticas manualmente
- Para isso basta executar o comando:
execute dbms_workload_repository.create_snapshot 
AWR – Tabelas do Dicionário de Dados
- O AWR armazena os dados coletados em várias 
tabelas nomeadas por:
o WRM$_* (metadados) 
o WRH$_* (histórico)
- Todas são de propriedade do usuário SYS e 
ficam na tablespace SYSAUX 
AWR – Views do Dicionário de Dados
- Existem várias views de prefixo DBA_HIST_ e 
podem ser usadas para que o DBA construa suas 
ferramentas de performance
- A lista completa das views pode ser obtida 
através do seguinte comando:
select view_name 
from user_views 
where view_name like 'DBA\_HIST\_%' escape '\'; 
- Criando o Relatório
@...rdbms\admin\awrrpt.sql
AWR – Gerando Relatório 
ADDM
“Automatic Database Diagnostic Monitor” 
ADDM– Definição
- Utilitário para identificar problemas de 
desempenho
- Indica os possíveis problemas e oferece 
sugestões
- Cria relatório através do script
@C:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\addmrpt.sql 
EXERCÍCIOS 




Nenhum comentário:

Postar um comentário