Oracle Statspack
A opção Oracle Statspack instala e habilita o recurso de estatísticas de performance Oracle Statspack. O Oracle Statspack é uma coleção de scripts SQL, PL/SQL e SQL*Plus que coletam, armazenam e exibem dados de performance. Para obter informações sobre como usar o Oracle Statspack, consulte Oracle Statspack
nota
O Oracle Statspack não tem mais suporte pela Oracle e foi substituído pelo mais avançado AWR (Automatic Workload Repository). O AWR está disponível apenas para clientes do Oracle Enterprise Edition que compraram o Diagnostics Pack. Você pode usar o Oracle Statspack com qualquer mecanismo de banco de dados Oracle no Amazon RDS. Você não pode executar o Oracle Statspack em réplicas de leitura do Amazon RDS.
Configurar o Oracle Statspack
Para executar scripts do Statspack, é necessário adicionar a opção Statspack.
Como configurar o Oracle Statspack
-
Em um cliente SQL, faça login no banco de dados Oracle com uma conta administrativa.
-
Execute uma das seguintes ações, dependendo se o Statspack está instalado:
-
Se o Statspack estiver instalado e a conta
PERFSTAT
estiver associada ao Statspack, vá para a Etapa 4. -
Se o Statspack não estiver instalado e a conta
PERFSTAT
existir, descarte a conta da seguinte maneira:DROP USER PERFSTAT CASCADE;
Caso contrário, tentar adicionar a opção Statspack gerará um erro e
RDS-Event-0058
.
-
-
Adicione a opção Statspack a um grupo de opções. Consulte Adicionar uma opção a um grupo de opções.
O Amazon RDS instala automaticamente os scripts do Statspack na instância de banco de dados e configura a conta
PERFSTAT
. -
Redefina a senha usando a seguinte instrução SQL, substituindo pwd por sua nova senha:
ALTER USER PERFSTAT IDENTIFIED BY pwd ACCOUNT UNLOCK;
Você pode fazer login usando a conta do usuário
PERFSTAT
e executar os scripts do Statspack. -
Conceda o privilégio
CREATE JOB
à contaPERFSTAT
usando a seguinte instrução:GRANT CREATE JOB TO PERFSTAT;
-
Verifique se os eventos de espera ociosos na tabela
PERFSTAT.STATS$IDLE_EVENT
estão preenchidos.Devido ao erro 28523746 do Oracle, os eventos de espera ociosos em
PERFSTAT.STATS$IDLE_EVENT
podem não estar preenchidos. Para garantir que todos os eventos ociosos estejam disponíveis, execute a seguinte instrução:INSERT INTO PERFSTAT.STATS$IDLE_EVENT (EVENT) SELECT NAME FROM V$EVENT_NAME WHERE WAIT_CLASS='Idle' MINUS SELECT EVENT FROM PERFSTAT.STATS$IDLE_EVENT; COMMIT;
Gerar relatórios do Statspack
Um relatório do Statspack compara dois snapshots.
Como gerar relatórios do Statspack
-
Em um cliente SQL, faça login no banco de dados Oracle com a conta
PERFSTAT
. -
Crie um snapshot usando uma das seguintes técnicas:
-
Crie um snapshot do Statspack manualmente.
-
Crie um trabalho que faça um snapshot do Statspack após determinado intervalo de tempo. Por exemplo, o seguinte trabalho cria um snapshot do Statspack a cada hora:
VARIABLE jn NUMBER; exec dbms_job.submit(:jn, 'statspack.snap;',SYSDATE,'TRUNC(SYSDATE+1/24,''HH24'')'); COMMIT;
-
-
Visualize os snapshots usando a seguinte consulta:
SELECT SNAP_ID, SNAP_TIME FROM STATS$SNAPSHOT ORDER BY 1;
-
Execute o procedimento
rdsadmin.rds_run_spreport
do Amazon RDS, substituindo begin_snap e end_snap pelos IDs do snapshot:exec rdsadmin.rds_run_spreport(begin_snap,end_snap);
Por exemplo, o seguinte comando cria um relatório baseado no intervalo entre os snapshots 1 e 2 do Statspack:
exec rdsadmin.rds_run_spreport(1,2);
O nome de arquivo do relatório do Statspack inclui o número dos dois snapshots. Por exemplo, um arquivo de relatório criado usando os snapshots 1 e 2 do Statspack se chamaria
ORCL_spreport_1_2.lst
. -
Verifique se há erros na saída.
O Oracle Statspack realiza verificações antes de executar o relatório. Portanto, você também pode ver mensagens de erro na saída do comando. Por exemplo, você pode tentar gerar um relatório com base em um intervalo inválido, em que o valor inicial do snapshot do Statspack é maior do que o valor final. Nesse caso, a saída mostra a mensagem de erro, mas o mecanismo de banco de dados não gera um arquivo de erro.
exec rdsadmin.rds_run_spreport(2,1); * ERROR at line 1: ORA-20000: Invalid snapshot IDs. Find valid ones in perfstat.stats$snapshot.
Se você usar um número inválido para um snapshot do Statspack, a saída mostrará um erro. Por exemplo, se você tentar gerar um relatório para os snapshots 1 e 50, mas o snapshot 50 não existir, a saída mostrará um erro.
exec rdsadmin.rds_run_spreport(1,50); * ERROR at line 1: ORA-20000: Could not find both snapshot IDs
-
(Optional)
Para recuperar o relatório, chame os procedimentos de arquivo de rastreamento, conforme explicado em Trabalhar com arquivos de rastreamento da Oracle.
Como alternativa, baixe o relatório do Statspack pelo console do RDS. Acesse a seção Log dos detalhes da instância de banco de dados e selecione Baixar. O exemplo a seguir mostra
trace/ORCL_spreport_1_2.lst
.Se ocorrer um erro ao gerar um relatório, o mecanismo de banco de dados usará as mesmas convenções de nomenclatura de um relatório, mas com uma extensão de
.err
. Por exemplo, se ocorresse um erro durante a criação de um relatório usando os snapshots 1 e 7 do Statspack, o arquivo de relatório se chamariaORCL_spreport_1_7.err
. É possível baixar o relatório de erros usando as mesmas técnicas de um relatório de snapshot padrão.
Remover snapshots do Statspack
Para remover vários snapshots do Oracle Statspack, use o seguinte comando:
exec statspack.purge(begin snap, end snap);