Amigo, utilizo assim, veja se te ajuda e/ou altere para seu ambiente declare cursor cr is select d.owner,d.object_name,d.object_type from dba_objects d where d.owner not in ('XDB','OUTLN','WMSYS','PUBLIC','SYS','SYSTEM','OUTLN','DBSNMP','TRACESVR','SCOTT','AURORA$ORB$UNAUTHENTICATED','WMSYS','MDSYS','EXFSYS','SYSMAN','TSMSYS','ORDSYS','DMSYS','CTXSYS','OLAPSYS','WKSYS','FLOWS_FILES','FLOWS_010500','WK_TEST') and d.object_type in ('TABLE') and d.object_name not like 'BIN$%'; VCOMANDO VARCHAR2(255); begin for r in cr loop VCOMANDO := 'begin dbms_stats.gather_table_stats('''||r.owner||''','''||r.object_name||''',cascade=> true);end;'; EXECUTE IMMEDIATE VCOMANDO; commit; end loop; end;
________________________________ De: "wel...@stcruz.com.br" <wel...@stcruz.com.br> Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 7 de Junho de 2011 11:47 Assunto: RES: [oracle_br] Criação de Script - Coelta de Estatisticas Bom dia... Olha, acho que não é por ai!!!! Você está tentando coletar estatística de todos os usuários do banco de dados. Veja bem, tem objetos no banco de dados Oracle que não se pode alterar as estatísticas.. Neste caso, recomendo você a coletar apenas de seu usuário de produção, onde roda seu ERP. Agora, vc pode também coletar as estatísticas do usuário SYS, vi alguma coisa na documentação a respeito.. Agora de tudo, acho desnecessário.. E outra, isso é um número estimado.. tipo 20%, a algum tempo, o Chiappa colocou uns scripts aqui no forum, onde ele dividia entre tabelas pequenas, médias e grande.. e coletava de forma diferente para cada uma delas... O que você precisa fazer? Qual Sua idéia? Qual banco versão? Qual SO... Abraço! De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de candiurudba Enviada em: terça-feira, 7 de junho de 2011 11:37 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Criação de Script - Coelta de Estatisticas Bom dia colegas, Estou refazendo alguns script antigos, quanto a coleta de estatisticas e estou tendo alguma dificuldade para criar um unico script, com a devida passagem de parametros relacionada aos owners que possuo... Irei fazer uma criação de histogramas diaria (20%) e no sabado, uma coelta full de estatisticas... A idéia seria a seguinte... begin cursor_username in (select distinct (username) from dba_users where lower(username) not in ('apex_public_user', 'flows_030000', 'flows_files', 'owbsys', 'spatial_csw_admin_usr', 'spatial_wfs_admin_usr', 'wkproxy', 'wksys', 'wk_test', 'xs$null', 'si_informmtn_schema', 'scott', 'oracle_ocm', 'dip', 'outln', 'mgmt_view', 'tsmsys', 'ix', 'anonymous', 'sysman', 'mdsys', 'sys', 'system', 'xdb', 'dbsnmp', 'olapsys', 'oe', 'wmsys', 'xdb', 'dmsys', 'ordplugins', 'ordsys', 'wmsys', 'exfsys', 'ctxsys', 'home', 'hs', 'si_informtn_schema', 'mddata', 'ora_xp_auditoria') order by username) EXEC DBMS_STATS.GATHER_SCHEMA_STATS('cursor_username',ESTIMATE_PERCENT => 20, METHOD_OPT =>'FOR ALL COLUMNS SIZE AUTO', DEGREE => 4, CASCADE => TRUE); end; / Mas não esta rolando...alguem tem alguma sugestão ou ideiá ? Senão terei que criar linha a linha para todos os schemas que possuo... Obrigadão [As partes desta mensagem que não continham texto foram removidas]