Oracle: Statspack
André Spadini | MultiCloud | DBA
Uma das maiores dificuldades de quem trabalha com banco de dados Oracle Standard Edition One ou Standard Edition é a geração de relatórios de performance, pois todas as features de performance são disponibilizadas somente para a versão Enterprise Edition. Gostaria de compartilhar uma forma fácil e rápida de configurar o relatório de performance através do pacote STATSPACK. Nesse artigo iremos realizar as seguintes atividades:
Instalação do pacote STATSPACK
Coleta manual de estatísticas
Coleta automática de estatísticas
Uma vez instalado o utilitário STATSPACK, é criado o usuário perfstat, o qual é dono de todos os códigos PL/SQL e os objetos de banco de dados criados.
Em banco de dados com CDB/PDBs, se faz necessário habilitar opção _oracle_script, pois não é possível criar common user no CDB.
/* Ambiente com CDB*/
/* CRIAR TABLESPACE */
create tablespace tools datafile size 200m autoextend on next 100m;
/* Conecte usando "sys/manager as sysdba" para instalar o STATSPACK usando o script spcreate.sql localizado no diretório $ORACLE_HOME/rdbms/admin. Use as configurações acima quando solicitado pelo programa. */
Quando executarmos o script spcreate, precisaremos responder 3 perguntas:
Enter value for perfstat_password: [senha do usuário perfstat]
Se aparecerem as mensagens abaixo, quer dizer que o pacote foi instalado com sucesso!
Usuário Statspack
Apos a instalação do pacote, todas as atividades serão realizadas com o usuário perfstat.
O script spauto.sql faz uso do pacote DBMS_JOB, a forma automatizada para coleta de estatísticas. O script fornecido pela Oracle programa fotografias de hora em hora. Esse processo pode ser alterado para se adequar a um determinado sistema.
Consultando os relatórios gerados.
Após a espera de algumas horas consulte a view stats$snapshot para listar quais snapshots foram coletados.
select name,snap_id,to_char(snap_time,'DD.MM.YYYY:HH24:MI:SS')
"Date/Time" from stats$snapshot,v$database
Para examinar as mudanças nas estatísticas entre dois períodos de tempo, execute o arquivo spreport.sql enquanto conectado com o usuário perfstat.