Oracle Database 10g SQL Tuning için İpuçları

Oracle DB üzerinde sorgu yazarken aşağıdaki ipuçlarını değerlendirmeniz sorgularınızı daha performanslı hale getirecektir.

+ Oracle’ın içinde Tuning Advisor ı kullanmanız sorgularınızın performansını  iyileştirmek için başvurulacak ilk metodlardan biri.

+ İndex attığınız kolon üstünde eşitsizlik şartı ile sorgulama yapıyorsanız, oracle bu condition için indexi kullanmıyacağından ötürü sorgu beklediğiniz performansı vermeyebilir. Bu yüzden index attığınız kolon üzerinde koyacağınız where şartına dikkat ediniz.

+ Distinct ve group by söz deyimi içeren sorgu sonucu, sort işlemine tabi tutacağından dolayı sorgularınız doğal olarak daha yavaş çalışacaktır. Distinct ve group by deyimi sonucun sıralanmasına neden olacağından çalışma performansı beklediğinizden yine düşük olabilir.

+ Aggregate işlemlerini içeren sorguların index kullanabildiği atlanmamalıdır.

+ indexlediğiniz kolon üzerinden fonksyon kullanarak bir karşılaştırma yapıyorsak bu sorguda yine index kullanmıyacaktır. Bu tarz sorguları aynı kolon üzerinden sık sık yapıyor isek normal index kullanmak yerine function based index yapısı kullanılmalıdır.

ör: where upper(colA) = ‘hebele’ –> colA üzerinden index atıldığını varsayar isek bu şartı içeren sorguda index kullanılamayacaktır.

+ Düşük selectivity’e sahip sorgular index kullanmazlar.

+ Union kullandığımız sorguarı union all kullanarak yazmak sorgu performansımızı yine arttıracaktır. Bunun nedeni union deyiminin extradan sorting işlemi yapmasıdır. Eğer yazdığımız sorgunun union all ile replace edilmesi fonksyonalite açısından birşey değiştirmiyor ise union all kullanmak performansı arttırır.

+ Olabildiğince iç içe sorgular yazmaktan kaçınmak gerekir. Çünkü nesting sorgular performansı dramatik şekilde düşürmektedir.

+ Boolean (True/False — Kümenin içinde varmı? yokmu? şeklindeki sorgular) değerleri check ettiğimiz sorgularda IN deyimi yerine EXIST deyimi kullanmak sorgu performansımız arttıracaktır.

+ OR ve IN kullandığımız sorguların performansları genel anlamda kötüdür.

+ = veya AND deyimleri kullandığımız koşul cümleleri daha performanslı çalışmaktadır.

Advertisements

About ... from Emrah METE

Bilgisayar Mühendisi
This entry was posted in Oracle, Uncategorized and tagged , , , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s