As suas respostas são simples :
1) o RDBMS Oracle (como a Esmagadora maioria dos RDBMSs projetados para
alta-performance) absolutamente *** NÃO *** mantém por default uma Auditoria ,
um controle completo e indefinido de tudo que é acessado, de quando um usuário
se conectou pela última vez, e itens do tipo - problemas ÓBVIOS de performance,
de espaço para armazenamento, etc, surgiriam .... No máximo, o que eles fazem é
manter algum tipo de log PARCIAL (** nunca absolutamente completo!!), dos TOP-N
objetos mais acessados, TOP-N SQLs mais custosos, e coisas assim, E mesmo esse
log parcial não é mantido indefinidamente, mas por alguns relativamente poucos
dias...
No caso do RDBMS Oracle, esse log é o AWR e o ASH, e por default ele é
mantido por 1 semana : SE o seu banco é 10g ou superior , provavelmente vc já
deve ter isso ativo por default. Só tenha em mente que :
a. usar (ou mesmo consultar) o AWR/ASH ** exige ** que vc tenha adquirido
uma licença específica para isso, CONFIRME que vc a tem
b. como eu disse e repito, esse monitoramento NÂO pega rigorosamente todos os
SQLs (grande chance de vc ter falsos positivos, de objetos que foram usados
mas tão pouco que não entraram no top-n), E é limitado (grandes chances de vc
ter uma rotina Criticamente importante que só roda no fim do mês, digamos)...
2) Se o AWR/ASH não te serve, vc VAI ter que ativar alguma
auditoria/monitoração : para saber tabelas acessadas via SELECT e dados de
login dos usuários, o mais simples seria o AUDIT do database, para saber as
tabelas alteradas seria ativar o monitoring pra consultar na
DBA_TAB_MODIFICATIONS , e para índices vc ativa o MONITORING usage, é isso
aí.... ADICIONALMENTE, se vc quiser ter ainda mais "garantias", ainda uma outra
fonte de dados, vc pode também montar uma rotina sua que a cada x minutos salve
os SQLs e seus planos (que estão na V$SQL/V$SQL_PLANxxx) numa tabela sua, que
depois vc consulta também
3) *** EVIDENTEMENTE ***, não é DE FORMA NENHUMA ** TODOS ** os índices e
todas as tabelas do database que vc quer monitorar : há um bom punhado de
usuários/schemas que são INTERNOS do RDBMS, com certeza eles vc deve
ignorar.... Da mesma forma, normalmente há um (ou poucos) schemas que são so
OWNERS dos objetos das aplicações : o pessoal que cuida/desenvolve/fornece as
aplicações TEM que te dizer quais são, aí vc ativa
monitoração/auditoria/whatever APENAS neles...
4) Óbvio que auditorias e monitorações só funcionam quando vc as ativa : o
PASSADO vc já perdeu....
E a duas observações finais :
=> vc está correndo NECESSARIAMENTE riscos com esta ação : nada impede que
haja algum relatório importante prum diretorzão mas que não roda
frequentemente, ou coisas assim - portanto, por mais que vc mantenham meses de
auditoria, coisas assim PODEM acontecer, então antes de dropar o que vc acha
que não é usado , MANTENHA algum tipo de backup
=> PLEASE, organiza a Documentação aí : absolutamente NÂO se entende um
ambeinet Produtivo onde qualquer um cria o que quiser sem registrar quem usa,
para que usa, como usa..... Se vc teve que recorrer às técnicas acima, é um
indicativo CLARo que Documentação aí é algo pra inglês ver....
[]s
Chiappa