Pokazywanie postów oznaczonych etykietą ORACLE. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą ORACLE. Pokaż wszystkie posty

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;

środa, 20 maja 2015

Obcinanie SHRINK

W przypadku gdy przekroczymy rozmiar bazy

Zapytanie informujące o obiektach takich jak tabele i loby zajmujące najwięcej miejsca w bazie
Logujemy się  na użytkownika SYS i wykonujemy


select
segment_namena u,
a.bytes/1024/1024 Size_MB,
a.tablespace_name,
b.table_name,
column_name,
owner
from dba_segments a
left join dba_lobs b using (owner, segment_name)
where a.tablespace_name like 'IMED%' order by a.bytes desc

wybieramy obiekt

Dla object_test np.

alter table object_test enable row movement;
ALTER TABLE audit_document modify LOB (CONTENT) (SHRINK SPACE);
Alter table audit_document shrink space compact;


Po odzyskaniu miejsca możemy spróbować zmniejszyć pliki bazy danych  odpowiednią wartość próbujemy dobrać na podstawie tego zajętości plików
 
Na użytkowniku SYS np.

ALTER DATABASE DATAFILE '../oraclexe/oradata/xe/IMEDDT_DAT’
RESIZE 1000M;
ALTER DATABASE DATAFILE '../oraclexe/oradata/xe/IMEDDT_LOB’
RESIZE 200M;

 
restartujemy bazę

 

 

Procedura kontroli statu listenerów Oracle problemy z połączeniem się z bazą Oracle



Jeżeli w trakcie pracy  występują błędy w połączeniu z bazą danych należy
sprawdzić:


  • Sprawdzić czy usługi OracleService oraz OracleTNSListener są uruchomione


  • Jeśli usługa jest uruchomiona kolejno można sprawdzić czy baza danych odpowiada poprzez wpisanie w konsoli polecenia tnsping nazwa_instancji (Uwaga !!! polecenie to działa tylko na stanowiskach serwerowych). Nazwa instancji dla klienta Oracle w wersji Express Edition = XE, w przypadku pełnej wersji ustalany podczas instalacji także można sprawdzić czy proces nasłuchu jest uruchomiony poleceniem - lsnrctl


  • Mogą także występować problemy z widocznością w sieci. Należy sprawdzić, czy port domyślnie 1521 ,który obsługuje połączenia sieciowe nie jest blokowany przez Firewall lub inny zainstalowany na komputerze program antywirusowy