Monitorando o uso de índices

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (2)  (0)

Veja como identificar se um índice criado em uma tabela está sendo utilizado ou não.

 

Introdução

por Rodrigo Salviatto

Quando desenhamos um sistema, implementamos índices em tabelas para obtermos uma performance no uso da aplicação, porém, por muitas vezes, estes índices não são utilizados e acabam atrapalhando a performance das aplicações que utilizam o banco de dados Oracle, utilizam espaço em disco desnecessário, aumentam o everhead das operações DML.

Diante disso, é possível identificarmos se um índice criado em uma tabela está sendo utilizado ou não. Vejamos como fazer isto.

 A verificação da utilização de um índice em uma determinada tabela é efetuada através da ativação do monitoramento do índice, onde identificamos se um determinado índice está ou não sendo utilizado. A sintaxe utilizada para ativar o monitoramento de um índice é:

ALTER INDEX INDEX_NAME MONITORING USAGE

A partir deste ponto, o Oracle irá armazenar todas as vezes que o índice foi utilizado, nesta sessão. Para visualizar se o índice está sendo utilizado na sessão, utilize a view do dicionário de dados  denominada V$OBJECT_USAGE. Exemplo:

SQL> SELECT  INDEX_NAME, USED

FROM V$OBJECT_USAGE;

 

INDEX_NAME          USED

---------------------------------------------------------------

IDX_EMP_01          YES

IDX_DEPT_01         NO

 

Observe que a consulta efetuada na sessão onde os índices IDX_EMP_01 e IDX_DEPT_01 foram ativados, apresentam os valores YES e NO. Desta forma, foi possível identificar que o índice IDX_EMP_01 está sendo utilizado pelas consultas executadas na sessão durante o monitoramente, porém o índice IDX_DEPT_01 não foi utilizado.

Toda vez que iniciar a monitoração de um índice, a view V$OBJECT_USAGE será redefinida, ou seja, os dados referentes monitorações de índices anteriores serão excluídos.

Para desativar o monitoramento do índice ( não se esqueça de efetuar esta operação ), execute a seguinte sintaxe:

ALTER INDEX INDEX_NAME NOMONITORING USAGE;

Antes de tomar qualquer ação no banco de dados, certifique-se que o período monitorado foi suficiente para colher as informações necessárias de verificação de uso do índice! Mantenha sempre seu backup do banco de dados atualizado e testado, assim como os scripts de criação dos objetos( índices por exemplo ), caso você tenha que restaurá-lo em uma situação emergencial!

Abraços e até a próxima!

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?