• Anderson Graf

Monitorando operações de uma tabela através da DBA_TAB_MODIFICATIONS

Muitas vezes somos questionados sobre quantas operações DML (Data Manipulation Language) ocorreram sobre determinadas tabelas. Pois bem, no Oracle database existe a view DBA_TAB_MODIFICATIONS que demonstra a quantidade de modificações sofridas nas tabelas do banco de dados desde a ultima coleta de estatísticas sofrida em cada objeto.



É importante destacar que estas informações serão computadas apenas para as tabelas com o atributo MONITORING.


Até a versão 10g, era especificado a palavra-chave MONITORING na instrução CREATE (ou ALTER) TABLE para ativar o monitoramento das estatísticas do objeto.


A partir da versão 11g as palavras-chave MONITORING e NOMONITORING foram depreciadas e as estatísticas passaram a sere coletadas automaticamente. Se você especificar essas palavras-chave, elas serão ignoradas. Para desabilitar o monitoramento de uma tabela a partir do 11g, defina o parâmetro de inicialização STATISTICS_LEVEL como BASIC. Seu padrão é TYPICAL, que permite a coleta automática de estatísticas.


Como o Oracle não atualiza estas informações constantemente, podemos utilizar a procedure FLUSH_DATABASE_MONITORING do pacote DBMS_STATS para baixar as informações de monitoramento da memória para as tabelas de dicionário acessíveis pelas views (*_TAB_MODIFICATIONS, *_TAB_STATISTICS e *_IND_STATISTICS).


Depois de 1 hora realizei o mesmo procedimento de flush de dados, logo, 318.558 – 127.014 = 191.544 UPDATES registrados!


Mais um exemplo para melhor evidenciar o monitoramento registrado pelo Oracle na DBA_TAB_MODIFICATIONS:


Observem que ainda não temos qualquer registro coletado para a tabela TESTE. Vamos então adicionar um registro:


Baixando os registros de monitoramento da memória e realizando novamente a consulta:


Um teste com updates:


Agora se executarmos uma coleta de estatísticas na tabela, todos os registros são zerados!


Referências:


Automatically Collecting Statistics on Tables https://docs.oracle.com/cd/B28359_01/server.111/b28310/tables005.htm#ADMIN11656


https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/DBA_TAB_MODIFICATIONS.html#GUID-05CB1867-44F3-41AB-9D5D-CA43798593FD

93 visualizações

© 2018 Exímio Solução em TI

  • Grey Facebook Ícone
  • Ícone cinza LinkedIn