The below script is to gather stats the customs schemas.

 

SET SERVEROUTPUT ON SIZE 1000000
set feedb off
set trimspool on

spool tmp_gather_schstats_${ORACLE_SID}.sql

DECLARE
CURSOR c_tm IS
select DISTINCT OWNER
from dba_tables t
where t.OWNER not in (‘APPQOSSYS’,’CTXSYS’,’DBSNMP’,’EXFSYS’,’MDSYS’,’OLAPSYS’,’ORDDATA’,’ORDSYS’,
‘OUTLN’,’PERFSTAT’,’SYS’,’SYSTEM’,’WMSYS’,’XDB’)
order by 1;

BEGIN
DBMS_OUTPUT.PUT_LINE(‘set echo on feedback on ‘);
DBMS_OUTPUT.PUT_LINE(‘set serveroutput on ‘);
DBMS_OUTPUT.PUT_LINE(‘ ‘);

DBMS_OUTPUT.PUT_LINE(‘BEGIN ‘);
DBMS_OUTPUT.PUT_LINE(‘ DBMS_STATS.gather_system_stats(‘||””||’Start’||””||’);’);
DBMS_OUTPUT.PUT_LINE(‘ DBMS_STATS.GATHER_FIXED_OBJECTS_STATS();’);
DBMS_OUTPUT.PUT_LINE(‘ DBMS_STATS.GATHER_DICTIONARY_STATS();’);
DBMS_OUTPUT.PUT_LINE(‘ DBMS_STATS.gather_system_stats(‘||””||’Stop’||””||’);’);
DBMS_OUTPUT.PUT_LINE(‘END; ‘);
DBMS_OUTPUT.PUT_LINE(‘/ ‘);
DBMS_OUTPUT.PUT_LINE(‘ ‘);

FOR c_tm_rec IN c_tm LOOP
DBMS_OUTPUT.PUT_LINE(‘BEGIN ‘);
DBMS_OUTPUT.PUT_LINE(‘ DBMS_STATS.GATHER_SCHEMA_STATS ( ‘);
DBMS_OUTPUT.PUT_LINE(‘ OWNNAME => ‘||””||c_tm_rec.OWNER||””||’,’);
— DBMS_OUTPUT.PUT_LINE(‘ OPTIONS => ‘||””||’GATHER AUTO’||””||’, ‘); — gather stale and gather empty
DBMS_OUTPUT.PUT_LINE(‘ ESTIMATE_PERCENT => DBMS_STATS.AUTO_SAMPLE_SIZE,’);
DBMS_OUTPUT.PUT_LINE(‘ DEGREE => CEIL(DBMS_STATS.AUTO_DEGREE/2),’);
DBMS_OUTPUT.PUT_LINE(‘ METHOD_OPT => ‘||””||’FOR ALL INDEXED COLUMNS SIZE SKEWONLY’||””||’,’);
DBMS_OUTPUT.PUT_LINE(‘ GRANULARITY => ‘||””||’ALL’||””||’,’);
DBMS_OUTPUT.PUT_LINE(‘ NO_INVALIDATE => FALSE’||’,’);
DBMS_OUTPUT.PUT_LINE(‘ CASCADE => TRUE); ‘);
DBMS_OUTPUT.PUT_LINE(‘END; ‘);
DBMS_OUTPUT.PUT_LINE(‘/ ‘);

END LOOP;
END;
/

spool off

set feedb on

@tmp_gather_schstats_${ORACLE_SID}.sql

Recent Posts

Start typing and press Enter to search