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.
WWW
Cevapla
#3
Şarta bağlı tüm alanlarda İndex tanımlı hocam. :ss
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


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Commit Sorunu muratsenocak 8 2.445 11-10-2022, Saat: 23:22
Son Yorum: muhkal
  dbeaver da tbaloda auto increment sorunu sadikacar60 2 1.090 04-11-2021, Saat: 10:02
Son Yorum: sadikacar60
  Firebird Ondalık Sorunu sunbeki 9 3.084 20-03-2021, Saat: 21:34
Son Yorum: ozcanm
  Firebird 3 kurulum ve çalışma sorunu Ahmet İPEKÇİ 5 3.359 02-12-2020, Saat: 05:42
Son Yorum: Ahmet İPEKÇİ
  Firebird BLOB SUB_TYPE TEXT Sorunu MuhammedYasir 3 1.899 20-10-2020, Saat: 21:55
Son Yorum: bibilen



Konuyu Okuyanlar: 1 Ziyaretçi