Değerli arkadaşlar merhaba,
80 adet field ve yaklaşık 11 bin kayıt olan bir tabloda*aşağıdaki sorguyu çalıştırıyorum. Sonuçta 43 adet kayıt geri dönüyor.
Sorguda 6 tane ürün (yonca, korunga vs) adı var ve bu*ürün isimleri değişebiliyor. Yani kullanıcının girdiği kayıtlara bağlı olarak ürün sayısı**1'de olabilir 100'de olabilir.
Fakat ürün sayısı arttıkça sorgu yavaşlıyor. Aşağıdaki sorguda 6 ürün için sorgu*yaklaşık 20 saniye kadar sürüyor.
Ürün sayısının ve tablodaki toplam kayıt sayısının daha fazla olduğunu düşünecek olursak sonuca ulaşma süresi belki birkaç dakikayı bulacak.
Bu sorguyu*hızlandırmak için yapabileceğimiz bir şeyler olabilir mi acaba?
SELECT
M1.tcno,M1.ADI_SOYADI
,M1.ADRES,M1.TELEFON,COUNT(M1.ADA_PARSEL) as PARSEL_SAYISI,
SUM(M1.BEYAN_ALAN) as BEYAN, sum(M1.TESPIT_ALAN) as TESPIT
, ( SELECT SUM(M2.TESPIT_ALAN) FROM tbl_yem_bitkileri M2 WHERE M2.EKILEN_URUN = 'Yonca (Yeşil Ot)' and M2.TARIM_SEKLI='Sulu' AND M2.TCNO = M1.TCNO and M2.KONTROL_YILI='2021') AS Yonca_sulu
, ( SELECT SUM(M7.TESPIT_ALAN) FROM tbl_yem_bitkileri M7 WHERE M7.EKILEN_URUN = 'Yonca (Yeşil Ot)' and M7.TARIM_SEKLI='Kuru' AND M7.TCNO = M1.TCNO and M7.KONTROL_YILI='2021') AS Yonca_Kuru
, ( SELECT SUM(M3.TESPIT_ALAN) FROM tbl_yem_bitkileri M3 WHERE M3.EKILEN_URUN = 'Korunga (Yeşil Ot)' and M3.TARIM_SEKLI='Sulu' AND M3.TCNO = M1.TCNO and M3.KONTROL_YILI='2021')AS Korunga_sulu
, ( SELECT SUM(M8.TESPIT_ALAN) FROM tbl_yem_bitkileri M8 WHERE M8.EKILEN_URUN = 'Korunga (Yeşil Ot)' and M8.TARIM_SEKLI='Kuru' AND M8.TCNO = M1.TCNO and M8.KONTROL_YILI='2021')AS Korunga_Kuru
, ( SELECT SUM(M4.TESPIT_ALAN) FROM tbl_yem_bitkileri M4 WHERE M4.EKILEN_URUN = 'Yulaf (Yeşil Ot)' and M4.TARIM_SEKLI='Sulu' AND M4.TCNO = M1.TCNO *and M4.KONTROL_YILI='2021')AS Yulaf_sulu
, ( SELECT SUM(M9.TESPIT_ALAN) FROM tbl_yem_bitkileri M9 WHERE M9.EKILEN_URUN = 'Yulaf (Yeşil Ot)' and M9.TARIM_SEKLI='Kuru' AND M9.TCNO = M1.TCNO *and M9.KONTROL_YILI='2021')AS Yulaf_Kuru
, ( SELECT SUM(M5.TESPIT_ALAN) FROM tbl_yem_bitkileri M5 WHERE M5.EKILEN_URUN = 'Fiğ (Yeşil Ot)' and M5.TARIM_SEKLI='Sulu' AND M5.TCNO = M1.TCNO *and M5.KONTROL_YILI='2021') AS Fig_sulu
, ( SELECT SUM(M10.TESPIT_ALAN) FROM tbl_yem_bitkileri M10 WHERE M10.EKILEN_URUN = 'Fiğ (Yeşil Ot)' and M10.TARIM_SEKLI='Kuru' AND M10.TCNO = M1.TCNO *and M10.KONTROL_YILI='2021') AS Fig_Kuru
, ( SELECT SUM(M6.TESPIT_ALAN) FROM tbl_yem_bitkileri M6 WHERE M6.EKILEN_URUN = 'Tritikale (Yeşil Ot)' and M6.TARIM_SEKLI='Sulu' AND M6.TCNO = M1.TCNO *and M6.KONTROL_YILI='2021' ) AS Tritikale_sulu
, ( SELECT SUM(M11.TESPIT_ALAN) FROM tbl_yem_bitkileri M11 WHERE M11.EKILEN_URUN = 'Tritikale (Yeşil Ot)' and M11.TARIM_SEKLI='Kuru' AND M11.TCNO = M1.TCNO *and M11.KONTROL_YILI='2021' ) AS Tritikale_Kuru
, ( SELECT SUM(M12.TESPIT_ALAN) FROM tbl_yem_bitkileri M12 WHERE M12.EKILEN_URUN = 'Arpa (Yeşil Ot)' and M12.TARIM_SEKLI='Sulu' AND M12.TCNO = M1.TCNO *and M12.KONTROL_YILI='2021' ) AS Arpa_sulu
, ( SELECT SUM(M13.TESPIT_ALAN) FROM tbl_yem_bitkileri M13 WHERE M13.EKILEN_URUN = 'Arpa (Yeşil Ot)' and M13.TARIM_SEKLI='Kuru' AND M13.TCNO = M1.TCNO *and M13.KONTROL_YILI='2021' ) AS Arpa_Kuru
FROM tbl_yem_bitkileri M1
Where M1.GRUP='YEM' and M1.TASINMAZ_DURUMU='Aktif' * and M1.KONTROL_YILI='2021'
GROUP BY M1.tcno,M1.ADI_SOYADI
,M1.ADRES,M1.TELEFON
* *Having sum(M1.TESPIT_ALAN) >= 10
Order By M1.ADI_SOYADI
80 adet field ve yaklaşık 11 bin kayıt olan bir tabloda*aşağıdaki sorguyu çalıştırıyorum. Sonuçta 43 adet kayıt geri dönüyor.
Sorguda 6 tane ürün (yonca, korunga vs) adı var ve bu*ürün isimleri değişebiliyor. Yani kullanıcının girdiği kayıtlara bağlı olarak ürün sayısı**1'de olabilir 100'de olabilir.
Fakat ürün sayısı arttıkça sorgu yavaşlıyor. Aşağıdaki sorguda 6 ürün için sorgu*yaklaşık 20 saniye kadar sürüyor.
Ürün sayısının ve tablodaki toplam kayıt sayısının daha fazla olduğunu düşünecek olursak sonuca ulaşma süresi belki birkaç dakikayı bulacak.
Bu sorguyu*hızlandırmak için yapabileceğimiz bir şeyler olabilir mi acaba?
SELECT
M1.tcno,M1.ADI_SOYADI
,M1.ADRES,M1.TELEFON,COUNT(M1.ADA_PARSEL) as PARSEL_SAYISI,
SUM(M1.BEYAN_ALAN) as BEYAN, sum(M1.TESPIT_ALAN) as TESPIT
, ( SELECT SUM(M2.TESPIT_ALAN) FROM tbl_yem_bitkileri M2 WHERE M2.EKILEN_URUN = 'Yonca (Yeşil Ot)' and M2.TARIM_SEKLI='Sulu' AND M2.TCNO = M1.TCNO and M2.KONTROL_YILI='2021') AS Yonca_sulu
, ( SELECT SUM(M7.TESPIT_ALAN) FROM tbl_yem_bitkileri M7 WHERE M7.EKILEN_URUN = 'Yonca (Yeşil Ot)' and M7.TARIM_SEKLI='Kuru' AND M7.TCNO = M1.TCNO and M7.KONTROL_YILI='2021') AS Yonca_Kuru
, ( SELECT SUM(M3.TESPIT_ALAN) FROM tbl_yem_bitkileri M3 WHERE M3.EKILEN_URUN = 'Korunga (Yeşil Ot)' and M3.TARIM_SEKLI='Sulu' AND M3.TCNO = M1.TCNO and M3.KONTROL_YILI='2021')AS Korunga_sulu
, ( SELECT SUM(M8.TESPIT_ALAN) FROM tbl_yem_bitkileri M8 WHERE M8.EKILEN_URUN = 'Korunga (Yeşil Ot)' and M8.TARIM_SEKLI='Kuru' AND M8.TCNO = M1.TCNO and M8.KONTROL_YILI='2021')AS Korunga_Kuru
, ( SELECT SUM(M4.TESPIT_ALAN) FROM tbl_yem_bitkileri M4 WHERE M4.EKILEN_URUN = 'Yulaf (Yeşil Ot)' and M4.TARIM_SEKLI='Sulu' AND M4.TCNO = M1.TCNO *and M4.KONTROL_YILI='2021')AS Yulaf_sulu
, ( SELECT SUM(M9.TESPIT_ALAN) FROM tbl_yem_bitkileri M9 WHERE M9.EKILEN_URUN = 'Yulaf (Yeşil Ot)' and M9.TARIM_SEKLI='Kuru' AND M9.TCNO = M1.TCNO *and M9.KONTROL_YILI='2021')AS Yulaf_Kuru
, ( SELECT SUM(M5.TESPIT_ALAN) FROM tbl_yem_bitkileri M5 WHERE M5.EKILEN_URUN = 'Fiğ (Yeşil Ot)' and M5.TARIM_SEKLI='Sulu' AND M5.TCNO = M1.TCNO *and M5.KONTROL_YILI='2021') AS Fig_sulu
, ( SELECT SUM(M10.TESPIT_ALAN) FROM tbl_yem_bitkileri M10 WHERE M10.EKILEN_URUN = 'Fiğ (Yeşil Ot)' and M10.TARIM_SEKLI='Kuru' AND M10.TCNO = M1.TCNO *and M10.KONTROL_YILI='2021') AS Fig_Kuru
, ( SELECT SUM(M6.TESPIT_ALAN) FROM tbl_yem_bitkileri M6 WHERE M6.EKILEN_URUN = 'Tritikale (Yeşil Ot)' and M6.TARIM_SEKLI='Sulu' AND M6.TCNO = M1.TCNO *and M6.KONTROL_YILI='2021' ) AS Tritikale_sulu
, ( SELECT SUM(M11.TESPIT_ALAN) FROM tbl_yem_bitkileri M11 WHERE M11.EKILEN_URUN = 'Tritikale (Yeşil Ot)' and M11.TARIM_SEKLI='Kuru' AND M11.TCNO = M1.TCNO *and M11.KONTROL_YILI='2021' ) AS Tritikale_Kuru
, ( SELECT SUM(M12.TESPIT_ALAN) FROM tbl_yem_bitkileri M12 WHERE M12.EKILEN_URUN = 'Arpa (Yeşil Ot)' and M12.TARIM_SEKLI='Sulu' AND M12.TCNO = M1.TCNO *and M12.KONTROL_YILI='2021' ) AS Arpa_sulu
, ( SELECT SUM(M13.TESPIT_ALAN) FROM tbl_yem_bitkileri M13 WHERE M13.EKILEN_URUN = 'Arpa (Yeşil Ot)' and M13.TARIM_SEKLI='Kuru' AND M13.TCNO = M1.TCNO *and M13.KONTROL_YILI='2021' ) AS Arpa_Kuru
FROM tbl_yem_bitkileri M1
Where M1.GRUP='YEM' and M1.TASINMAZ_DURUMU='Aktif' * and M1.KONTROL_YILI='2021'
GROUP BY M1.tcno,M1.ADI_SOYADI
,M1.ADRES,M1.TELEFON
* *Having sum(M1.TESPIT_ALAN) >= 10
Order By M1.ADI_SOYADI