DBMS_STATS - Erro ao coletar estatística

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Pessoal, bom dia.
Tudo bem?

Estou tendo problemas ao coletar estatísticas aqui e, gostaria de saber se algum forista tem alguma dica.

O cenário é o seguinte:

Banco e SO:

Selecionar tudo

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production                                      
CORE	11.2.0.3.0	Production                                                  
TNS for IBM/AIX RISC System/6000: Version 11.2.0.3.0 - Production           
Chamada da procedure da package DBMS_STATS:

Selecionar tudo

declare
  wlista   dbms_stats.objecttab;
begin
  dbms_stats.gather_database_stats(options =>     'GATHER EMPTY',
                                   objlist =>     wlista,
                                   gather_sys =>  false);
end;

Erro apresentado:

Selecionar tudo

ORA-20000: Statistics collection failed for 1 objects in the database
ORA-06512: at "SYS.DBMS_STATS", line 25058
ORA-06512: at line 4
Gostaria de saber se alguém tem alguma solução ou, de como eu procurar esse objeto que falhou.

Muito obrigado.

Trevisolli
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brothers, bom dia...
Achei uma solução aqui:

Listar os objetos que estão na lista, com a opção LIST AUTO

Selecionar tudo

declare
  wlista   dbms_stats.objecttab;
begin
  dbms_stats.gather_database_stats(options =>     'LIST AUTO',
                                   objlist =>     wlista,
                                   gather_sys =>  false);

  for l in 1..wlista.count loop
    dbms_output.put_line('Objeto: '||wlista(l).objname);
  end loop;                                   

                                   
end;
No caso, nessa lista, uma table não deveria ser coletada a estatística. Removi o objeto, pois não era utilizado e, ok, o "GATHER EMPTY" coletou corretamente.

Fica ai o ocorrido e, aberto à novas dicas!

Abração,

Trevisolli
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Estranho.
Tem um bug quase igual a esse, mas é pra TODOS e não 1:

Selecionar tudo

ORA-20000: Statistics collection failed for all objects in database

Selecionar tudo

Bug 11808462  dbms_stats raises ora-20000: statistics collection failed for all objects in database
Não achei nada parecido com isso também :-(
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Boa dica Trevis!
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Valeu Dr_Gori.

Eu tb procurei no metalink e encontrei o DOC ID = 11808462. Mas, como você mesmo disse, existe um Bug e, não é para 1, mas, para todos. (ORA-20000: Statistics collection failed for all objects in database).

Daí, conversando com um outro DBA aqui, me deu a dica do "list auto" e, vi a table que estava me causando o problema.

Valeu mesmo brother.

Grande abraço!

Trevis
Responder
  • Informação