Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
MySQL de Aynı tabloda ki 2 farklı alanı kıyaslayan sorgu
#1
Merhabalar , 


SELECT h.hesapkodu , h.hesapadi FROM hesapkarti as h WHERE h.hesapkodu=h.grupkodu


Yukarı da ki gibi bir cümlede aynı tabloda yer alan 2 alanın birbirine eşit olanlarını listelemek istiyorum, son derece basit gibi görünen bu istek arkada büyük bir karmaşaya sebep oluyor olacak ki içinde yaklaşık 1.000.000 satır bulunan tabloda kabul sınırlarını aşacak sürede geç dönüyor. 2 alanda da index mevcut, acaba dedim böyle bir kullanım pratikte yanlış bir hareket mi, aklıma bir çok örnek geldi örn: alış fiyatıyla satış fiyatı aynı olan stok kartları vb...

execution plain de index kullanmadığını görüyorum , FORCE INDEX yada USE INDEX ile zorlasam da bir index kullanmıyor.

Böyle bir kullanım anormal mi ? aynı sonuç için farklı önerileriniz var mı?

İyi çalışmalar.
Cevapla
#2
Çok yavaş çalışıyorsa,
(hesapkodu+grupkodu)/hesapkodu=2 olan kayıtları çekmeyi denermisiniz hocam?
WWW
Cevapla
#3
Merhaba,

Birkaç gün önce benzer bir olay başıma gelmişti aşağıdaki şekilde çözebildim.

SELECT * FROM FATURADETAY A
WHERE NOT EXISTS
(
SELECT * FROM accounts_recievable B
WHERE A.ID=B.invoice_id AND B.evrakno=A.EVRAKNO
) AND A.GMHK =@gmhk 
AND 1=1 
Cevapla
#4
Aşağıdaki gibi bir sorgu sonuç veriyor mu Volkan'ım ?

SELECT
  h.hesapkodu ,
 h.hesapadi
FROM hesapkarti as h
WHERE
 h.ID IN (
              SELECT HK.ID
              FROM hesapkarti HK
              GROUP BY
                  HK.hesapkodu + HK.hesapadi
              HAVING COUNT(*) > 1
            )
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#5
Öncelikle değerli vakitlerinizi ayırdığınız için teşekkür ederim.
@esistem , sizin yöntem de aynı gecikme süresinde yanıt verdi maalesef ,
@denizfatihi , bu yöntem de neredeyse aynı sürede yanıt verdi (buraya konuyu açmadan önce bunu ve JOIN li metodu deneyip sonuç alamamıştım)
@Tuğrul HELVACI abi evet bu yöntemle süre kayda değer düzeyde kısaldı çok teşekkürler. (40 sn de gelen sorgu yaklaşık 7 sn de geliyor)

Herkese iyi çalışmalar.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Sorgu hızlandırma powerghost 7 276 11-07-2020, Saat: 00:19
Son Yorum: powerghost
  Mysql DB Hatası powerghost 1 103 09-07-2020, Saat: 09:37
Son Yorum: wiseman
  MYSQL Tunning powerghost 8 484 16-06-2020, Saat: 14:12
Son Yorum: wiseman
  Birden fazla id tutulacak tabloyu parçalamak mı yoksa tek tabloda birleştirmek mi man onurakman 7 1.361 10-01-2020, Saat: 18:23
Son Yorum: adelphiforumz
  MySQL json sunucu örneği esistem 3 875 25-12-2019, Saat: 11:04
Son Yorum: Halil Han Badem



Konuyu Okuyanlar: 1 Ziyaretçi