Ae pessoal um colega aqui da empresa passou a solução abaixo, disse que testou 
e funciona...vou ver...

De qualquer forma fica ae para quem quiser...

create table system.ver_tabela_sem_acesso(
      table_name             varchar2(30),
      statistic_name         varchar2(30),
      report_date            date,
      table_owner            varchar2(30),
      startup_time_db        date)
/

create index system.ix_ver_tabela_sem_acesso_rd on 
system.ver_tabela_sem_acesso(report_date);

create or replace procedure system.PR_CHECK_UNUSABLE_TABLE
is
      cursor c_checa_tab_sem_uso is
            select table_name
            from dba_tables
            where owner='SYSADM'
            minus
            select object_name
            from v$segment_statistics
            where statistic_name = 'logical reads' and
                  object_type    = 'TABLE'         and
                  owner          = 'SYSADM';
begin
      for i in c_checa_tab_sem_uso loop
insert into system.ver_tabela_sem_acesso
            (
            TABLE_NAME,
            STATISTIC_NAME,
              REPORT_DATE,
              TABLE_OWNER,
           STARTUP_TIME_DB
            )
            values
            (
            i.table_name,
            'logical reads',
            sysdate,
            'SYSADM',
            (select STARTUP_TIME from v$instance)
            );
      end loop;
      commit;
end PR_CHECK_UNUSABLE_TABLE;
/

select table_name
              from dba_tables
              where owner='SYSADM'
              minus
              select object_name
              from v$segment_statistics
              where statistic_name = 'logical reads' and
                    object_type    = 'TABLE'         and
                    owner          = 'SYSADM'
/

exec PR_CHECK_UNUSABLE_TABLE;




Em 31/07/2012 18:20, J. Laurindo Chiappa < jlchia...@yahoo.com.br > escreveu:















 



  


    
      
      
        Ah, importante : ainda sobre as opções não 100% confiáveis, E SE vc não 
precisa saber de Queries, vc pode também ativar a funcionalidade de table 
monitoring no 9i : o que esse cara faz é registrar em tabelas internas mais ou 
menos o quanto vc teve de alterações nos dados (principalmente via INSERTs) - 
Óbvio ululante, como o Objetivo desse cara é ter uma idéia se as estatísticas 
de modo geral estão muito defasadas ou não, É CLARO que esse sujeito só pode 
ser incluído no grupo das não 100% confiáveis, vc VAI SIM cedo ou tarde ter 
perdas com esse cara.... 
http://www.oracle-base.com/articles/8i/refreshing-stale-statistics-8i.php fala 
sobre o assunto.

  

    []s

        

           Chiappa

           



--- Em oracle_br@yahoogrupos.com.br, "J. Laurindo Chiappa"  escreveu

>

>    Andre, a sua resposta é bem clara aqui : se a sua necessidade é saber 
> quando a tabela foi usada MAS com 100% de precisão, sem a menor Chance de 
> falso-positivo OU de perda de dados, a tua ÚNICA alternativa é implantar 
> algum tipo de AUDITORIA, ok ? CASO seja aceitável algum risco, porém, aí vc 
> terá as opções que citarei ao final da msg...

>    

>    Falando sobre AUDITORIA, ela pode ser EXTERNA ao database (via tools 
> externas a serem compradas e instaladas/setadas, como o Guardium, o Audit 
> Vault e n outras), OU pode ser interna ao database (via trace de SQL, comando 
> AUDIT, FGA, triggers - que NÂO sejam FOR EACH ROW, pelamor, é Claro -, 
> criação de view materializada com log de alterações, etc)... Há ainda a opção 
> mista de (SE o banco está em modo archive) vc ** MINERAR ** os redo logs - eu 
> a chamei de mista porque em princípio vc tanto pode fazer a mineração no 
> próprio banco-origem QUANTO PODE fazer isso num outro servidor, fora do 
> database original, para onde vc enviaria os redo logs....

>   Lembro apenas que  :

>     - nem todos os métodos acima funcionam em todas as versões, com todos os 
> SQLs (alguns só auditam DMLs, não queries), com todos os datatypes... vc DEVE 
> consultar na sua Documentação (se for método interno) ou no Suporte do 
> fornecedor (se for método externo) a Aplicabilidade 

>       - a vantagem da Auditoria externa é que o Overhead no database em si é 
> nulo (pode haver algum overhead para o Servidor, se o método externo for 
> instalado no mesmo servidor , ou então na Rede se o método externo for 
> instalado em outro servidor), e a Desvantagem principal é que ela tem Custo 
> extra (em Licenças, em homens/hora para instalação e setup, etc)

>     -  a vantagem da Auditoria interna no database é que o Custo dela é 
> mínimo (quando não é ZERO), e a desvantagem é que NECESSARIAMENTE ela implica 
> em algum overhead para o database.... Fique CLARO aqui que via de regra esse 
> overhead é MÍNIMO, Minúsculo, mas não é zero... Isso TEM que ser 
> relativizado, porém : Na real, pro seu caso por exemplo, só imagino quanto 
> bilhões de I/Os teu banco de 20 Terabytes faz rotineiramente, será que nesse 
> cenário o único , pequenino,simplório I/O de INSERT na tabela de Audit vai 
> fazer cosquinha nesse servidor, vai "quebrar" alguma coisa ??????? Vc que 
> diz, mas sinceramente Eu acho Improvável ao extremo...

>       

>  Falando sobre as opções NÂO 100% confiáveis : basicamente vc vai consultar 
> os caches de SQL (já que TODO acesso à tabelas no RDBMS Oracle demanda um SQL 
> apropriado) : no 9i isso pode ser feito consultando-se diretamente as V$ 
> apropriadas, ou com Statspack (que faz basicamente a mesma coisa) - sendo 9i 
> vc Não Terá a funcionalidade do AWR, que já faz essa consulta às V$s 
> automaticamente e as guarda... 

>  

>     []s

>       

>      Chiappa

>          

> 

> --- Em oracle_br@yahoogrupos.com.br, Andre Campos  escreveu

> >

> > 

> > Vitor, valeu pela resposta, mas audit não é uma opção é um banco de 20TB e 
> > já esta no gargalo o consumo.

> > Teria que ser algo tipo monitoração a monitoração de indices.....(tá 
> > dificil...)

> > 

> > 

> > 

> > 

> > Em 31/07/2012 16:02, Vitor Jr.  escreveu:

> > Habilitando a auditoria?

> > 

> > 

> > Att,/Regards,

> > 

> > 

> > Vitor Jr.

> > Infraestrutura / Infrastructure Team

> > Oracle 11g DBA Certified Professional - OCP

> > Oracle Database 11g Performance Tuning Certified Expert - OCE

> > Oracle Exadata 11g Certified Implementation Specialist

> > Oracle Certified Associate, MySQL 5

> > mail, gtalk e msn: vitorjr81@

> > http://certificacaobd.com.br/

> > skype: vjunior1981

> > 

> > 

> > 

> > On 31/07/2012, at 16:02, Andre Campos  wrote:

> > 

> > > Boa tarde pessoal...tudo bem?

> > > 

> > > Alguém sabe me dizer se tem como monitorar a utilização de uma tabela no 
> > > oracle 9i?

> > > Tipo ultima vez que a tabela foi acessada?

> > > 

> > > Obrigado!

> > > 

> > > _________________________

> > > André Campos

> > > 

> > > 

> > 

> > 

> > 

> > [As partes desta mensagem que não continham texto foram removidas]

> > 

> > 

> > 

> > ------------------------------------

> > 

> > ----------------------------------------------------------

> > >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de 
> > >inteira responsabilidade de seus remetentes.

> > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 

> > ----------------------------------------------------------

> > >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure 
> > >» Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
> > >http://www.oraclebr.com.br/  

> > ---------------------------------------------------------- Links do Yahoo! 
> > Grupos

> > 

> >  Para visitar o site do seu grupo na web, acesse:

> >     http://br.groups.yahoo.com/group/oracle_br/

> > 

> >  Para sair deste grupo, envie um e-mail para:

> >     oracle_br-unsubscr...@yahoogrupos.com.br

> > 

> >  O uso que você faz do Yahoo! Grupos está sujeito aos:

> >     http://br.yahoo.com/info/utos.html

> >

>






    
     

    
    






  
  
  








Responder a