Eğitimlerin arasında Oracle PL/SQL Advanced ve SQL Tuning de ekliyorum. İnanılmaz keyifli ve tune gibi çok detaylı sınıflandırmaları öğreniyorum. Artık joinlerin bile nested loop, merge veya hash olmasına karar vermesini sağlıyorum, hintlere özgürlük veriyorum ve Oracle benim dediğimi yapacaksın diyorum (: Optimizer miş pehh
Şimdi Advanced PL/SQL deyim, açıkçası yaratılan cursorlerin ref cursor olarak yaratıldığı zaman global olup tüm procedurelerde çalıştığını bilmiyordum. Hatta bir procedure ile çağırılıp nerede kaldıysa diğer procedure çalıştığı an oradan devam etmesi çok orjinalmiş.
Kısacası Oracle Tuning keyifli bir eğitim ve bir o kadar da pahalı bir eğitim. İş yerinin bunu göz ardı etmemesi çok iyi. Artık tamamen Oracle'ım diyebilirim.
Denemelerim:
14 milyon kayıt barındıran ve kendi kendini tekrar edip ekleyen bir customers2 tablosu yarattım. Bunu Sales tablosu ile işleştirince 234 milyon kayıt gibi absurt bir rakam çıkarttı.
Join 'i Nested Loop yap diyince sorgu sonucunu 1 saat 10 dk da getirdi.
Join'i Hash ve 2 Parallel lik verince 34 dk da getirdi.
Bunları yaparken autotrace i traceonly yaptığım için sadece Extension Plan gösterdi istatistikle beraber.
Bunlar benim ilk tune denemelerim, eylemlerim devam edicek ;)
SQL ler
Nested loop:
select /*+ use_nl(c) */ * from sh.customers2 c, sh.sales s
where c.cust_id = s.cust_id;
Parallel ve Hash:
select /*+ use_hash(c) parallel(2) */ * from sh.customers2 c, sh.sales s
where c.cust_id = s.cust_id;


