wtorek, 26 maja 2015

Tuning Oracle - Statystyki

poprawiamy wydajność itd.

Statystyki

Musimy wyłączyć naliczanie statystyk i wykasować statystyki istniejące. 
Sprawdzamy czy istnieją jakieś statystyki zatem np logujemy się na użytkownika HR


SELECT TABLE_NAME FROM USER_TABLES WHERE last_analyzed IS NOT NULL

Kasujemy statystyki jako użytkownik np HR

BEGIN
 FOR C IN (SELECT table_name FROM user_tables WHERE last_analyzed IS NOT NULL) LOOP
  EXECUTE IMMEDIATE 'ANALYZE TABLE '||C.table_name||' DELETE STATISTICS';
 END LOOP;
END;

Zatrzymanie naliczania statystyk logujemy się jako SYS

BEGIN
 DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');
END;

BEGIN
 DBMS_SCHEDULER.ENABLE('GATHER_STATS_JOB');
END;


Przeliczenie statystyk szybkie logujemy się jako SYSTEM

begin 
dbms_utility.analyze_schema('FK','ESTIMATE'); 
end;


Przeliczenie statystyk dokładne logujemy się jako SYSTEM

begin 
 dbms_utility.analyze_schema('GABINET','COMPUTE'); 
end;