https://www.psychiccowgirl.com/x0odrc4pl Em um artigo passado, Uso e gerenciamento dos ocupantes da SYXAUX, havíamos falado sobre o SM/OPTSTAT cuja feature introduzida na versão 10G armazena versões mais velhas do otimizador de estatísticas o que nos permite restaurá-las caso seja encontrado alguma agressão com o novo plano de execução em função de uma nova coleta de estatística, por exemplo.
https://faroutpodcast.com/q0iuamnfsihttps://semichaschaver.com/2025/04/03/ialtv3n9rb Pois bem, hoje iremos demonstrar como podemos restaurar estas estatísticas antigas armazenadas na SM/OPTSTAT.
https://kirkmanandjourdain.com/a2yfhc0w1qTramadol Online By Cod Pegando uma tabela qualquer para testes, vamos verificar quando ocorreu a ultima coleta de estatisticas e a quantidade de linhas da tabela.
Tramadol Buy Online Cheap Ukhttps://www.anonpr.net/uhrl8pi SQL> set lines 190 SQL> select table_name, to_char(last_analyzed,'dd/mm/yyyy hh24:mi') last_analyzed , num_rows from dba_tables where table_name='TESTE_OLD_STATS'; TABLE_NAME LAST_ANALYZED NUM_ROWS ------------------------------ ---------------- ---------- TESTE_OLD_STATS 12/03/2013 22:15 457678
Cheap Tramadol By Cod Observem que a ultima coleta ocorreu no dia 12/03 as 23:30 e a tabela possuia 457.678 registros. Como o plano de execução é baseado em estatisticas, vejamos a quantidade de linhas(rows) retornadas caso um acesso full a tabela fosse realizado (FTS) – FULL TABLE SCAN
watchfollow url SQL> set lines 190 SQL> set pages 6000 SQL> explain plan for 2 select * from TESTE_OLD_STATS 3 / Explained. SQL> SELECT * FROM TABLE(dbms_xplan.display); PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------- Plan hash value: 207430563 ------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 457K| 28M| 956 (2)| 00:00:12 | | 1 | TABLE ACCESS FULL| TESTE_OLD_STATS | 457K| 28M| 956 (2)| 00:00:12 | ------------------------------------------------------------------------------------- 8 rows selected.
source Vamos verificar a quantidade de dias que as estatísticas estão sendo retidas. Por default são 31 dias, mas isto pode ser ajustado conforme necessidade, mais ou menos (verificar artigo: Uso e gerenciamento dos ocupantes da SYXAUX)
follow sitehttps://aalamsalon.com/bufpz3i SQL> select dbms_stats.get_stats_history_retention from dual; GET_STATS_HISTORY_RETENTION --------------------------- 31
https://www.masiesdelpenedes.com/fzghgcoaq7r ou
https://www.annarosamattei.com/?p=8raszvysfollow link SQL> select dbms_stats.get_stats_history_availability from dual; GET_STATS_HISTORY_AVAILABILITY --------------------------------------------------------------------------- 09-FEB-13 10.29.55.270730000 PM -03:00
follow url Agora as estatísticas antigas registradas para nossa tabela dentro do período de retenção (31 dias)
clickhttps://mhco.ca/w519wns8tll SQL> select a.table_name, a.stats_update_time from DBA_TAB_STATS_HISTORY a where a.table_name='TESTE_OLD_STATS'; TABLE_NAME STATS_UPDATE_TIME ------------------------------ --------------------------------------------------------------------------- TESTE_OLD_STATS 10-FEB-13 12.39.05.828592 AM -02:00 TESTE_OLD_STATS 17-FEB-13 01.58.31.076713 AM -03:00 TESTE_OLD_STATS 17-FEB-13 10.05.56.367845 PM -03:00 TESTE_OLD_STATS 19-FEB-13 10.16.20.671026 PM -03:00 TESTE_OLD_STATS 20-FEB-13 02.14.35.927244 PM -03:00 TESTE_OLD_STATS 20-FEB-13 10.16.38.776073 PM -03:00 TESTE_OLD_STATS 21-FEB-13 10.19.12.034280 PM -03:00 TESTE_OLD_STATS 22-FEB-13 10.18.28.355258 PM -03:00 TESTE_OLD_STATS 27-FEB-13 10.20.22.307535 PM -03:00 TESTE_OLD_STATS 28-FEB-13 10.16.40.663599 PM -03:00 TESTE_OLD_STATS 12-MAR-13 10.15.52.573286 PM -03:00 11 rows selected.
see Restaurando as estatísticas do dia 19/02 (19-FEB-13)
source sitehttps://lavozdelascostureras.com/r0omvhs SQL> exec dbms_stats.restore_table_stats('ANDERSON', 'TESTE_OLD_STATS','19-FEB-13 10.16.20.671026 PM -03:00'); PL/SQL procedure successfully completed. SQL> select table_name, to_char(last_analyzed,'dd/mm/yyyy hh24:mi') last_analyzed , num_rows from dba_tables where table_name='TESTE_OLD_STATS'; TABLE_NAME LAST_ANALYZED NUM_ROWS ------------------------------ ---------------- ---------- TESTE_OLD_STATS 19/02/2013 22:16 256982
https://kanchisilksarees.com/caa7ysm0 Novamente um explain com FTS
followhttps://colvetmiranda.org/o89d5gsk SQL> explain plan for 2 select * from TESTE_OLD_STATS 3 / Explained. SQL> SELECT * FROM TABLE(dbms_xplan.display); PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------- Plan hash value: 207430563 ------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 256K| 15M| 227 (4)| 00:00:03 | | 1 | TABLE ACCESS FULL| TESTE_OLD_STATS | 256K| 15M| 227 (4)| 00:00:03 | ------------------------------------------------------------------------------------- 8 rows selected.
see url Outros detalhes sobre a coleta de estatísticas da tabela também podem ser obtidos na DBA_OPTSTAT_OPERATIONS, conforme abaixo:
go to linkhttps://audiopronews.com/headlines/nx9szw6o SQL> set lines 190 SQL> col OPERATION for a25 SQL> col TARGET for a40 SQL> col START_TIME for a40 SQL> col END_TIME for a40 SQL> select a.* from DBA_OPTSTAT_OPERATIONS a where target like '%TESTE_OLD_STATS%'; OPERATION TARGET START_TIME END_TIME ---------------------------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- restore_table_stats ANDERSON.TESTE_OLD_STATS 13-MAR-13 08.45.18.660761 PM -03:00 13-MAR-13 08.45.19.015789 PM -03:00 gather_table_stats ANDERSON."TESTE_OLD_STATS" 10-FEB-13 12.39.05.190460 AM -02:00 10-FEB-13 12.39.07.042604 AM -02:00 gather_table_stats ANDERSON."TESTE_OLD_STATS" 17-FEB-13 01.58.30.549778 AM -03:00 17-FEB-13 01.58.32.001111 AM -03:00
Clonazepam Fast Delivery Usa Só para concluir, lembro que este não é o único modo de restaurar as estatísticas de uma tabela, você pode exportar/importar/replicar utilizando um backup, por exemplo.
enter site
Autor: Anderson Graf
source site Bacharel em Sistemas de Informação e MBA em Gestão de Banco de Dados Oracle. Entusiasta da tecnologia Oracle, ACE Associate ♠, autor em vários blogs e OTN. Consultor Oracle Senior na Exímio Soluções em TI
https://semichaschaver.com/2025/04/03/a7w35c8
see Envolvido em soluções de:
– Implementação, migração, gerenciamento e suporte a produtos Oracle, multiplataforma
– Monitoramento de ambientes 24×7
– Backup e Recovery
– Performance e Tuning
– Alta disponibilidade (HA) – RAC, Data Guard
– EM database/grid/cloud control
– Particionamento & Advanced Compression
– Oracle Engineered Systems – ODA, Exadata
source site Blog pessoal: http://www.andersondba.com.br
Articulista na Oracle Technology Network (OTN) – https://goo.gl/99R6yW
ACE Associate – https://goo.gl/MBB51b
Articulista GPO – http://profissionaloracle.com.br