top of page
Training-classroom-home-hero.jpg

UYGULAMA GELİŞTİRME EKİBİNİZ İÇİN HAZIRLADIĞIMIZ EŞSİZ ORACLE PERFORMANS İYİLEŞTİRME SINIF EĞİTİMLERİ *

* Sınıf eğitimlerimiz yerinde sadece firmanız ekibine özel açılmaktadır. Üstelik Tamamen Türkçeler.

EĞİTİMLER: Services
sql_iyilestirme.png


Oracle Database SQL İyileştirme Temelleri Eğitimi, Oracle veritabanı üzerinde kaliteli SQL’ler yazarak performanslı bilgi sistemler geliştirmek için gerekli olan uzmanlık alt yapısının oluşturulmasını amaçlayan temel eğitimdir. Eğitim sayesinde elde edinilen bilgilerle sadece kaliteli SQL geliştirmek değil, zaten geliştirilmiş SQL’ler üzerinde iyileştirme yapmak da hedeflenmiştir. Eğitim sonrasında Oracle Optimizer’ın ve ilgili veritabanı içeriklerinin öğrenilmesi sayesinde SQL geliştirme ve iyileştirme uzmanlığı kazanılacaktır.

Eğitim kitapçığı, SQL yazma ve iyileştirme alanında her zaman baş vurulabilecek bir rehber olması amacıyla geliştirilmiş olup, bu alandaki Türkçe dokümantasyon açığını da kapatmayı hedeflemiştir.

Eğitim Bilgileri

Eğitmen: Yiğit Öztürk/Oracle Veritabanı Yönetici Danışmanı.

Kitle : Uygulama Geliştiriciler, Veritabanı Yöneticileri.

Dil : Türkçe.

Süre : 5 Gün.

Seviye : Başlangıç ve Orta.

Dersler

1.Ders: SQL İyileştirme Temelleri

Bu derste SQL iyileştirme sürecine giriş oluşturması açısından konuyla ilgili çeşitli kavramlar ele alınmıştır. SQL iyileştirmenin neden yapılması gerektiği, ön koşullarının neler olduğu, hangi alt süreçlerden oluştuğu işlenmiştir. Bir SQL cümlesinin hangi özelliklerinin kötü performansa sebep verdiği anlatılarak kötü ve ideal bir SQL cümlesinin taşıdığı özellikler örneklerle desteklenerek anlatılmıştır.

2.Ders: Oracle Optimizer Temelleri

Oracle Optimizer ile ilgili temel ve kavramsal bilgilere, özellikle de plan maliyeti hesaplamaya yer verilmiştir. Ders sonunda Oracle Optimizer ile ilgili birçok kavram detaylı olarak kavranacak ve Oracle veri tabanının nasıl işlediği hakkında bilgi sahibi olunacaktır.

3.Ders: Yürütme Planı

SQL yürütme planı kavramı işlenmiştir. Ders sonunda SQL yürütme planını oluşturma ve adımlarını yorumlama yetisi kazanılmaktadır.

4.Ders: Optimizer Erişim Patikaları

Yürütme planında görülen Oracle erişim patikalarının «access paths» tamamı örnekler verilerek işlenmiştir. Ders sonunda tüm erişim patikaları ve nasıl çalıştıkları anlaşılacaktır.

5.Ders: Birleşimler

Oracle tarafından yürütme planlarında kullanılan tüm birleşim yöntemleri ve tipleri işlenmiştir. Ders sonunda birleşim metotlarının neler olduğu, nasıl çalıştıkları ve yürütme planlarında değerlendirilmesi becerisi kazanılacaktır.

6.Ders: Sorgu Dönüşümleri

Oracle Optimizer tarafından uygulanan sorgu dönüşümleri tanıtılmıştır. Ders boyunca 8 tane Oracle sorgu dönüşümü tek tek örneklerle detaylı olarak incelenmekte ve Optimizer’ın hangi durumlarda hangi dönüşümleri uyguladığı öğrenilmektedir. Ders sonunda bir SQL’ in yürütme planına bakıldığında dönüşüme uğrayıp uğramadığının kavranması

yetisi kazanılmış olacaktır. Bölüm sonunda SQL iyileştirme için önemli kavram kazanımları olduğu gibi daha kaliteli SQL yazmak için birçok bilgi sahibi olunmuş olacaktır. Optimizer davranışı daha da anlaşılacaktır.

7.Ders: Optimizer Yönlendirme

Bu derste Optimizer’ı yürütme planları oluştururken kontrol etmeye olanak veren yönlendirme «hint» konusu işlenmiştir. Dersin sonunda tüm önemli yönlendirmelerle SQL cümleleri yürütme planlarının nasıl değiştirilerek kontrol altına alınabileceği ileri yetisi kazanılacaktır.

8.Ders: Optimizer İstatistikleri

Optimizer tarafından yürütme planlarının oluşturulmasında kullanılan tablo, indeks ve sistem Optimizer istatistikleri tanıtılmıştır. Ders sonunda istatistiklerin tüm opsiyonlarıyla toplanabilmesi yetisi ve maliyet hesaplama şekli anlaşılacaktır.

9.Ders: Paralel Yürütme

Paralel yürütme içeriği kullanılarak SQL cümlelerinin paralel çalıştırılabilmesi ve yürütme planlarının değerlendirilebilmesi işlenmiştir. Ders sonunda seri çalışan SQL cümlelerinin paralel çalıştırılabilmesi ve yürütme planlarının değerlendirilebilmesi öğrenilecektir.

10.Ders: Otomatik İyileştirme

Bu derste Oracle Optimizer’ın yanlış yürütme planlarını düzeltmek için kullandığı Otomatik İyileştirme İçeriği işlenmiştir. Ders sonunda Optimizer tarafından yürütme planlarının iyileştirilmesi için çalışan mekanizmaların neler olduğu, bu mekanizmaların nasıl işlediği anlaşılacaktır.

11.Ders: SQL Performansı İzleme

Bir SQL cümlesi için yürütme istatistiklerinin Oracle’dan nasıl izleneceği işlenmiştir. Ders sonunda herhangi bir SQL cümlesinin kaynak kullanımı, tamamlanma zamanı gibi bilgilerinin hangi yöntemlerle Oracle veritabanından izlenebileceği anlaşılacaktır.

pl-sql_iyilestirme.png

Oracle PL/SQL İyileştirme Temelleri Eğitimi, Oracle veritabanı üzerinde kaliteli PL/SQL’ler yazarak performanslı bilgi sistemler geliştirmek için gerekli olan uzmanlık altyapısının oluşturulmasını amaçlar. Eğitim sayesinde elde edinilen bilgilerle sadece kaliteli PL/SQL geliştirmek değil, zaten geliştirilmiş kodlar üzerinde ciddi iyileştirmeler yapabilmek de hedeflenmiştir. Eğitim sonrasında çok daha performanslı, yüksek kapasiteli ve az kaynak tüketen PL/SQL kodları geliştirme uzmanlığı kazanılacaktır.
Bir uygulamada PL/SQL kodlarının kalitesini performanslarıyla beraber uygulamanın mimari tasarımı da belirler. PL/SQL uygulamasının mimari tasarımı ne kadar iyiyse performansı da o ölçüde iyi etkilenir; ancak bu yeterli değildir. Tekrar kullanılabilir, bakımı kolay ve iyi bir mimari tasarımın üstüne yazılacak kodlar da kendi içinde iyi bir performans ve yüksek kapasite için çok iyi tasarlanmalıdır. Bu eğitimde gösterilen her teknikle performans ve kapasite
sorunlarının ilgili durumlar için nasıl çözüleceği öğrenilirken aslında ideal performans için daha iyi bir mimari tasarım ve kodlamanın nasıl yapılması gerektiğinin temelleri atılacaktır.
Hazırlayan
- Yiğit Öztürk/ Oracle Veritabanı Danışmanı
- Oracle Veritabanı İle 20+ Yıl
Hedef Kitle
- Uygulama Geliştiriciler
- Veritabanı Yöneticileri
Eğitim Ve Kitap Dili
- Türkçe
Normal Süre
- 5 Gün
Seviye
- Başlangıç
- Orta
Ön Koşul
-Temel PL/SQL ve Az SQL Bilgisi
Dersler
1.Ders: PL/SQL Kodlamada Basit Teknikler
PL/SQL ile her türlü uygulama geliştirirken kodların güzel tasarlanması ve modüler olması önemlidir. PL/SQL kodlarıyla beraber SQL kodlarının da belirli kalite standartlarında olması adeta zorunludur. Her ikisinin kalitesi kadar SQL-PL/SQL entegrasyonunda seçilen yöntemler de performans için önemli rol oynar. Böyle büyük bir kapsama göre PL/SQL ile uygulama geliştirirken tercih edilen çeşitli basit teknikler de toplamda ciddi bir performans ve kapasite kazancı olarak geri döner.
Bu derste son derece basit ama birbiriyle ilişkisi olmayan on ayrı durum derlenerek bu durumlarda bilinçli tercihlerin yapılmasının performansı nasıl etkilediği kod örnekleri ve bunların süre testleriyle gösterilmiştir. Eğitim sonunda katılımcılar çok karşılaşılan bu basit ama ince durumlarda neyi yapıp neyi yapmamaları gerektiğini öğrenerek eğitime giriş yapacaklardır. Aynı zamanda PL/SQL kalite kontrol standartlarının da ufak bir parçasını oluşturan bu teknikleri yeni kodlara uygulayabilecekleri gibi mevcut kodları da iyileştirmek için kullanabileceklerdir.
2.Ders: PL/SQL-SQL Entegrasyon Teknikleri
Oracle ürünleriyle geliştirilmiş tipik bir uygulamanın kaynak kodları ön yüz, PL/SQL ve SQL olmak üzere üç ayrı platformda yazılır. Diğer bir deyişle klasik bir internet uygulaması pratikte üç ayrı motor kullanır. Kodlanan iş mantığının hangi katmanda olması gerektiği mimari tasarım tarafından belirlenir. Bu katmanlar üzerinde de oranın motoruna uygun şekilde mantıksal iş katmanları tasarlanır. Verimsiz kod yazmanın yanında günlük hayatta sık yapılan yanlışlıklardan biri de bunları doğru katmanda geliştirmemektir.
PL/SQL ve SQL katmanları doğaları gereği birbirine entegre olduğundan SQL ile yapılabilecek bazı şeyler PL/SQL ile veya PL/SQL ile yapılabilecek şeyler de SQL ile yapılabilir. Uygulama geliştirirken SQL işini SQL ile, PL/SQL işini de PL/SQL ile doğru şekilde yapmak performans ve kapasite için büyük önem taşır. Bu derste öncelikle hangi durumlarda SQL hangi durumlarda PL/SQL kullanılması gerektiği anlatılmaktadır. Bu durumların bazıları bu derste kalanları ise diğer derslerde detaylı örneklerle gösterilmiştir. Dersin sonunda ayrıca hem SQL hem de PL/SQL tarafında alt program yerleştirme tekniği de detaylıca incelenmektedir. Ders boyunca ortam değişimi gibi çeşitli olaylardan hangi tekniklerle kaçınılarak nasıl performans kazanıldığı işlenmektedir. Entegrasyon konusu o kadar geniştir ki eğitimdeki diğer derslerdeki tekniklerde de bu konuya sıklıkla değinilmektedir. Geniş bir uygulama geliştirme alanının kapsandığı bu ders sonunda hangi işlerin SQL hangi işlerin PL/SQL tarafında hangi tekniklerle yapılması gerektiği ve bunlar arasında yanlış katman seçilmesinin sonuçlarının ne olduğu öğrenilirken özellikle ortam değişiminden (contex switch) kaçınma tekniklerinin tamamı da öğrenilmiş olacaktır. Bu tekniklerin işlenmesine diğer derslerde de devam edilmektedir.
3.Ders : Ön Bellek (Cache) Paylaşım Teknikleri
Performanslı çalışan ve kapasite sorunu yaşamayan uygulamalar için arkada kullanılan her türlü ön bellek tekniğinin önemi çok büyüktür. Öyle ki – eğer bir performans problemi varsa orada büyük ihtimal ön bellek kullanımı bir şekilde yoktur – yanlış genellemesi bile sıklıkla haklı çıkabilir. Bu derste PL/SQL kodları için tasarlanıp kullanılabilecek 5 bağımsız ön bellek tekniğine detaylı kod örnekleri ve ayrı ayrı karşılaştırma testleriyle yer verilmektedir. Son kısımda 5 ayrı ön bellek tekniğinin verimsiz büyük birleşimlerden kaçınmak için örneğin nasıl kullanıldığı gösterilirken bunlardan hangisinin hangi durumlarda seçilmesi gerektiği özetlenmektedir. Ders sonrasında hem SQL hem de PL/SQL tarafındaki kodlarda, özellikle de kullanıcı tanımlı fonksiyonlarda hangi ön belleğin nasıl tasarlandığı, bunların hangi durumlarda hangi tekniklerle kullanıldığı öğrenilecektir.
4.Ders: Koleksiyon Kullanma Teknikleri
PL/SQL uygulamalarının olmazsa olmazı koleksiyonlar uygulama verimliliği, performans ve güzel bir tasarım için çok büyük öneme sahiptir. Çok gelişmiş SQL motorundan dolayı kayıt bazlı çalışan rutinler artık saf OLTP uygulamalarında bile kabul edilmeyip; kayıtların bir seferde toplu işlendiği modeller son derece verimli ve yüksek kapasiteyle çalışmaya olanak vermektedir. PL/SQL ile uygulama geliştirirken kayıtların özellikle toplu işlendiği aşamada kullanılan koleksiyonlar PL/SQL tarafında performans ve kapasite için müthiş bir rol oynar. Koleksiyonlar toplu kayıtların son derece hızlı ve verimli işlenmesine olanak verdiği gibi PL/SQL tarafında kayıt bazlı çalışmayı gereksiz kılan en önemli yapı taşlarından birini oluşturur.
Bu derste koleksiyonların en iyi performans için kullanılması gereken tüm alanlar yedi alt başlık altında yine karşılaştırmalı test kodlarıyla birlikte tek tek işlenmektedir. Ders sonunda kayıt bazlı kod işleyişi yerine aynı işin toplu olarak nasıl daha performanslı yapılacağı hemen her durum için öğrenilmiş olacaktır. Ders sonunda kayıt bazlı çalışmaya veda edilerek son derece hızlı çalışan toplu süreç kodlarının önü açılacaktır.
5.Ders: Tablo Fonksiyon Kullanma Teknikleri
Tablo fonksiyonlar – içlerindeki koleksiyonların elemanlarına özellikle tek tek dokunulup yavaşlatılmazlarsa – kütle işlemler yapmak için son derece idealdir. SQL motoru zaten kütle işlem için idealdir; yapılabilecek her şey SQL
motorunda yapılmalıdır ama işler zorlaşmaya başlayıp PL/SQL kodlarına mecburen kayıldığında kütlesel işlem gücü çok zayıflamaktadır. Böyle durumlarda tablo fonksiyonlar devreye girer; aynı süreç için hem SQL hem PL/SQL tarafında paralel kütlesel işlemler yapabilme şansı sunar. Bu derste kütlesel DML olarak seçilen INSERT AS SELECT cümlelerinde SQL cümlesine konulamayan PL/SQL yordamlarının SQL motorunun paralel gücünden kısıtlı da olsa nasıl faydalanabileceği işlenmektedir. Ders sonunda tablo fonksiyonlarının diğer özelliği olan az bellek kullanarak büyük kütlesel işlemleri ardışık yapabilme tekniği öğrenilecektir.
6.Ders: Paralel PL/SQL Yürütme Teknikleri
Oracle veri tabanında SQL tipi ne olursa hemen her türlü SQL için paralel yürütme planına sahip olabilmek müthiş bir içeriktir. Paralel içerikler sadece SQL ile kısıtlı olmayıp çok farklı veri tabanı operasyonlarında kullanılabilir. Aynı şeyi PL/SQL için söylemek mümkün değildir: PL/SQL için ise paralel içerikler maalesef son derece kısıtlıdır ama ihtiyaç da duyulmaktadır. İşte bu ihtiyacı iyi kötü karşılayan DBMS_PARALEL_EXECUTE paketi sayesinde özellikle bilinçli tasarlanmış her türlü PL/SQL kodunu paralel yürütmek mümkündür.
Bu derste önce DBMS_PARALLEL_EXECUTE mevcut sürümünün tüm çalışma modelleri tanıtılmaktadır. Bunların hangi durumlarda nasıl çalıştığı öğrenildikten sonra her bir model için ayrı örnekler verilmektedir. Bu örneklerde seri bir iş alınarak paket ile paralel çalıştırılacak şekilde düzenlenmektedir. Yine karşılaştırmalı performans farkı ortaya konulmaktadır. Ders sonunda katılımcılar PL/SQL kodlarını paralel çalıştırarak büyük PL/SQL işlerini yığınlara bölüp bunları paralel çalıştırarak nasıl performans kazanıldığını öğrenmiş olacaklardır.
7.Ders: PL/SQL Performansı İzleme
PL/SQL uygulamalarında fonksiyonun veya yordamın tamamlanma zamanını ölçmek kolaydır. Ancak özellikle sorunlu durumlarda uygulamayı iyileştirmek söz konusuysa her satırın karşılaştırmalı olarak ne kadar zaman aldığını bilmek, üstelik bunu iç içe çağrılan uygulamalar bütününde bir hiyerarşi altında görmek son derece önemlidir.
Bu derste Oracle tarafından sunulan PL/SQL performans profili teknikleri anlatılmaktır. Dersin başında ilgili profil tablolarının nasıl yaratıldığı gösterilmekte, devamında DBMS_PROFILER, DBMS_TRACE ve DBMS_HPROF araçlarıyla PL/SQL kod satırlarının tamamlanma sürelerinin nasıl alındığı anlatılarak test örnekleriyle gösterilmektedir. Ders sonunda katılımcılar yazılmış olan PL/SQL uygulamalarında iyileştirilmesi gereken satırları nasıl bulmaları gerektiğini öğrenecek; bu içerik sayesinde uygulamanın bütününde veya satır bazında iyileştirme sürelerini de eskisiyle karşılaştırabilecek.
Özet: 40 PL/SQL İyileştirme Tekniği
Bu eğitimi farklı kılan en büyük özellik PL/SQL performans iyileştirme tekniklerini konulara göre derslere bölerek işlemesidir. Böylelikle tek tek teknik ezberlemek yerine hangi tekniğin hangi durumda kullanılması gerektiği çok iyi aktarılmaktadır. Örneğin ileride ihtiyaç duyulduğunda aranan teknik ilgili konu başlığı altında hem de uygulama örneğiyle bulunacaktır. Diğer bir yandan eğitimde işlenen tüm tekniklerin her birini bir cümleyle ifade edebilmek eğitim içeriğinin son kez gözden geçirilmesi açısından çok faydalıdır. Bu bölümde eğitim boyunca işlenen tekniklerin tamamı «40 PL/SQL iyileştirme tekniği» başlığı altında özetlenmiştir.
Eğitimin sonunda bu tekniklerin tek tek gözden geçirilmesi eğitimde işlenen konuların tekrar hatırlanması açısından tavsiye edilmektedir.

veritabani_iyilestirme.png

Oracle veri tabanında iyileştirme kavramı çok geniştir. Bunu «Veri Tabanı İyileştirme» ve «Uygulama İyileştirme» olarak iki genel alt başlıkta ele almak yanlış olmaz. Veri tabanı iyileştirme, veri tabanı içeriklerini uygulamadan bağımsız kullanarak yapılırken, uygulama iyileştirme ise genellikle uygulama rutinleri üzerinde yapılır. Uygulama rutinleri iyileştirilirken birçok veri tabanı içeriğinden de faydalanılır. PL/SQL iyileştirme için kullanılan teknikler uygulama iyileştirme tekniklerinin bir parçasıdır. Uygulamayı iyileştirirken SQL ve PL/SQL teknikleri kullanırken aynı zamanda performansa ve kapasiteye yönelik veri tabanı performans teknikleri de kullanılır. Özet olarak canlı bir uygulamayı iyileştirmek için kullanılabilecek teknikleri üç alt başlıkta gruplamak yanlış olmaz :


1.SQL İyileştirme Teknikleri

2.PL/SQL İyileştirme Teknikleri

3.Oracle Veri Tabanı Performans İçerikleri


Bu eğitimde «Oracle Veri Tabanı Performans Teknikleri» işlenmiştir.


Oracle veri tabanı danışmanı Yiğit Öztürk tarafından hazırlanan eğitimde katılımcı kitlesi olarak uygulama geliştiriciler ve veritabanı yöneticileri hedeflenmiştir. Katılım ön koşulu olarak temel Oracle veri tabanı ve az SQL bilgisi aranmaktadır.  Eğitim içeriği temel bilgilerden oluşmasına rağmen ileri kavramlara da sıkça değinildiği için ileri seviye uzmanların da katılması tavsiye edilmektedir. Konular ve örnekler en az 5 günde katılımcılara aktarılacak şekilde düzenlenmiştir.

Hazırlayan

- Yiğit Öztürk/ Oracle Veri tabanı Danışmanı

- Oracle Veritabanı İle 20+ Yıl

Hedef Kitle

- Uygulama Geliştiriciler

- Veritabanı Yöneticileri

Eğitim ve Kitap Dili

- Türkçe

Normal Süre

- 5 Gün

Seviye

- Orta

- İleri

Ön Koşul

-Oracle Veri Tabanı Kullanımı

Dersler

1.Ders: Performans Parametreleri ve Ayarları

2.Ders: Performans İçin Oracle İleri Sıkıştırma

3.Ders: Oracle Parçalama (Oracle Partitioning)

4.Ders: Alanlar İçin Dahili Bellek (In-Memory Store)

5.Ders: Veri Kümeleme ve Bölge Haritaları (Attribute Clustering & Zone-Maps)

6.Ders: Sorguların Tekrar Yazılımı (Query-Rewrite)

7.Ders: Otomatik İyileştirme (Automatic Tuning)

8.Ders: Geçmişe Dönük Veri Arşivi (Flashback Data Archive)

9.Ders: Oracle ILM

10.Ders: İşletim Sistemi Ayarları

bottom of page