goryszewskig
9/18/2018 - 4:27 PM

zadania

zadania

Przygotuj kopie tabeli dba_objects pod nazwa t1 (CTAS) w tablespace users ,
nastepnie na t1:
- przelicz statystyki bez histogramow
- ustaw preferencje t1 dot. statystyk aby histogramy nie byly liczone
- sprawdz rozmiar t1 w bajtach
- dodaj struktury optymalne dla zapytan:
	select * from t1 where owner = 'SYS' 
	select owner,object_name from t1 where object_id between 1 and 1000 order by object_name desc
	select owner,object_name from t1 where object_id + 1 = 111111 order by object_name desc
	select * from t1 where object_id between 2 and 222 and data_object_id = 102211 and owner not in ('SYS')
	 - wykonaj update 1 wiersza z object_id jakims na NULL
	zoptymalizuj zapytanie:
		select data_object_id from t1 where object_id is NULL
zoptymalizuj zapytanie znajdujace min(data_object_id) and max(data_object_id) w jednym selekcie.
- wyswietlij wszystkie plany tak aby posiadac informacje o buffer gets(albo odpowiednik)
 
skopiuj tabele dba_objects pod nazwa t2 w przestrzeni users
- dodaj strukture optymalizujaca zapytanie:
 select object_name from t2 where lower(owner)='hr'
and object_name like 'EMP%';
- przedstaw 3 typy joinow tabeli t1 i t2
uzywajac hinty i sterujac kolejnoscia zlaczen

skopiuj 100 rekordow z tabeli dba_objects do tabeli t3 w przestrzeni users
- przelicz statsy z uwzglednieniem histogramow na kolumnie owner
- wykonaj join t1 t2 t3 po kolumnie data_object_id 
czy otrzymany plan jest optymalny?
- co w przypadku select t3.object_id from t1,t2,t3 where t1.data_object_id = t2.data_object_id and t2.data_object_id = t3.data_object_id ?
- zademonstruj sterowanie kolejnoscia zlaczen dla jednego typu joina

Wymysl zapytanie na t3, ktore w planie wykonania bedzie mialo anti join .

Zablokuj unnest takiego zapytania

Czy tak zablokowany unnest da sie jakos zoptymalizowac?

---
Znajdz zapytanie zuzywajace najwiecej buffer gets w calej bazie
 - wyswietl jego plan
 - wygeneruj trace 10053 dla tego zapytania
 - wymus na nim hard parse