Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Query Plan Index Sorunu
#1
Question 
Merhaba,
Aşağıdaki şekilde çalıştırdığım sorgu için Plan kısmında işler yolunda gözükürken.
select * From MUSTERI_KAYIT where SORGU_ID IN (2,3)
Plan
PLAN (MUSTERI_KAYIT INDEX (MUSTERI_KAYIT_SORGU_ID, MUSTERI_KAYIT_SORGU_ID))

IN içindeki 2 ve 3 değerini aşağıdaki şekilde, iç Select ile elde ederek yaptığım zaman, Planda yer alan son 2 satır için ORDER ve NATURAL bilgisini veriyor ve Performans Analysis MUSTERI_KAYIT için indexlenmemiş olarak gözüküyor. İç Select kullanmadan, değerleri elle girdiğimde hepsi İndexli olarak gözüküyor. Nerede hata yapıyorum  Huh

Select *
From MUSTERI_KAYIT
Where SORGU_ID IN (
                   select
                     max(ID) as ID
                   From LOG_KAYIT
                   Where
                       MUSTERI_ID IN ( select
                                           ID
                                       From MUSTERI 
                                       WHERE
                                           SORGU_ID=(Select Max(ID)
                                                     From LOG_MUSTERI
                                                     Where KIMLIKNO='0000000001'
                                                     )
                                     )
                   GROUP BY MUSTERI_ID
                 )
Plan
PLAN (LOG_MUSTERI INDEX (LOG_MUSTERI_KIMLIKNO))
PLAN (MUSTERI INDEX (MUSTERI_SORGU_ID))

PLAN (LOG_KAYIT ORDER LOG_KAYIT_MUSTERI_ID)
PLAN (MUSTERI_KAYIT NATURAL)
Cevapla
#2
LOG_KAYIT tablosundaki MUSTERI_ID alanınız indexli görünmüyor sanırım.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#3
Şarta bağlı tüm alanlarda İndex tanımlı hocam. Confused
Cevapla
#4
Selamlar,

SQL'de MAX sorgusu çekiyorsanız, filtrelediğiniz ve MAX aldığınız alanları indexlerken DESC index tanımlayın. Performansınızı artıracaktır. Örneğin sizin verdiğiniz Query'lerde LOG_MUSTERI tablosunda KIMLIKNO + ID ve MUSTERI_ID + ID şeklinde iki adet index ekleyip denemesini yapabilir misiniz.

Ya da ID alanını tek başına DESC bir index olarak tanımlar mısınız. O şekilde denemesini yapıp sonucu söylerseniz seviniriz.

Kolay Gelsin
Cevapla
#5
@Kuri_YJ
Hocam ilginiz ve cevabının için teşekkür ederim.
Yeni bir proje olduğu için tablo yapısında bir değişiklik yaparak buradaki sorunu farklı şekilde çözdüm. Fakat bu söylediniz yöntemi en kısa sürede deneyip sonucu buradan paylaşacağım.
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Firebird de Enter karakter sorunu çözümü mcuyan 2 160 01-07-2018, Saat: 14:31
Son Yorum: klavye
  Firebird Query Optimizasyon klavye 3 480 29-09-2017, Saat: 23:00
Son Yorum: boreas
  Firebird index sorunu quake16 4 790 07-03-2017, Saat: 18:14
Son Yorum: masteryoda



Konuyu Okuyanlar: 1 Ziyaretçi