You are on page 1of 2

BEGIN

SALVA_WPESQUISA('TABLE_STATS', 1,
'##############################################################');

FOR r_tab IN ( SELECT table_name


FROM user_tables
WHERE temporary = 'N' )
LOOP
SALVA_WPESQUISA('TABLE_STATS', 2, 'TABLE >> '||r_tab.table_name);

BEGIN
DBMS_STATS.DELETE_TABLE_STATS ( USER, r_tab.table_name );

DBMS_STATS.GATHER_TABLE_STATS ( ownname => USER


, tabname => r_tab.table_name
, cascade => true
, estimate_percent => 100
, method_opt =>'for all indexed
columns size auto'
, granularity => 'ALL'
, degree => 1 );

FOR r_idx IN ( SELECT index_name


, tablespace_name
FROM user_indexes
WHERE index_type = 'NORMAL'
AND table_type = 'TABLE'
AND table_name = r_tab.table_name )
LOOP
SALVA_WPESQUISA('TABLE_STATS', 3, 'INDEX >> '||r_idx.index_name);

IF r_idx.tablespace_name <> 'F3I_INDEX' THEN


EXECUTE IMMEDIATE 'ALTER INDEX '||r_idx.index_name ||' REBUILD
TABLESPACE F3I_INDEX';
ELSE
EXECUTE IMMEDIATE 'ALTER INDEX '||r_idx.index_name ||' REBUILD';
END IF;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
SALVA_WPESQUISA('TABLE_STATS', 0, 'ERRO >> '||SQLERRM);
END;
END LOOP;

SALVA_WPESQUISA('TABLE_STATS', 4,
'##############################################################');
END;

--ATUAL
SELECT *
FROM W_PESQUISA
WHERE USUARIO = 'TABLE_STATS'
ORDER BY ID DESC;

--TABLES
SELECT COUNT(*)
FROM W_PESQUISA
WHERE USUARIO = 'TABLE_STATS'
AND SEQUENCIA = 2;
--INDEXES
SELECT COUNT(*)
FROM W_PESQUISA
WHERE USUARIO = 'TABLE_STATS'
AND SEQUENCIA = 3;

--ERRORS
SELECT COUNT(*)
FROM W_PESQUISA
WHERE USUARIO = 'TABLE_STATS'
AND SEQUENCIA = 0;

You might also like