Aynı sorguyu kullanarak, sorgumdaki 2 alt sorguda kullandığım tabloların
"products_id" alanına index ekledim. sorgu süresi 0.0139 sn ye düştü.

cevap yazan arkadaşlara çok teşekkür ederim.

<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Virüs
bulunmuyor. www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

23 Ekim 2017 10:09 tarihinde M.Dumlupinar <mdumlupi...@gmail.com> yazdı:

> merhabalar,
>
> yanlış anlaşılmaması adına niyetimi en başta belirtmek istiyorum:
> söylediklerinizin doğruluk payı var Sezayi Bey fakat ben bazı kısmına
> katılmıyorum (lütfen eleştiriden ziyade faydalı bir tartışma olarak görün
> yazdıklarımı)
>
> > Bu tür soruların hap çözümünü hemen vermek kolay değil.
> kronikleşen sorunu zamanla yada incelemelerle çözemezsiniz, 39000 kayıt
> için 16 yada 8 saniye gibi kabul edilemeyecek süreleri ancak radikal ya da
> sizin deyiminizle hap çözümü şeklinde çözebilirsiniz.
>
> >Sorgudan önce tablo yapılarını, veri tabanı modellemesine bakmak sorunun
> daha net anlaşılmasını sağlar.
> "sonuç bu ise bir yerlerde hata olmalı, şunlara bakın..." diyerek ben de
> buna işaret etmiştim.
>
> >Öncelikle Open Source yazılımlarda bu tür VT yapısı nasıl oluşturulmuş
> ,nasıl kodlar kullanılmış bakmakta fayda var
> ben tam da bu konuda bir açık kaynak muhasebe sistemi yazdım ve bir
> başkasının benim tablo yapılarımı inceleyerek kendi sistemindeki sorunları
> çözebileceğini pek sanmıyorum.
> veri yapılarını incelemek isterseniz : https://github.com/seyhanp/
> seyhan/tree/master/conf/evolutions
> evet bu projede de veri tablolarından başka birşey kullanılmadı
>
> >view, function, stored procedure ve trigger gibi veri tabanı araçlarının
> kullanmama kararı programcının tercihi olabilir.
> evet haklısınız fakat ben (nosql olanlar hariç) mysql, sql-server, oracle,
> pgsql... gibi yaygın olarak kullanılan veritabanlarının ilişkisel
> veritabanları olduğunu kabul ederek sadece verilerimi ilişkiler
> belirleyerek kullanmaya çalışıyorum
> bu yaklaşımım (günlük milyon hatta bazı durumlarda milyar istek durumunda)
> veritabanı darboğazlarını aşmamı sağladığı gibi istediğim zaman çok da
> zorlanmadan veritabanını değiştirmem sağlıyor (her ne kadar olmasa da,
> olabilme ihtimali var)
>
> sonuçta; trigger, stored procedure, view, function, standart sql de
> olmayan db ye has özel komutlar... gibi şeyler kesinlikle faydalı şeyler
> fakat her birinin getirdiği ek bir maliyet, yük ya da çekince / kısıtlama
> var. proje yapısı, kullanıcı sayısı, veri yoğunluğu, veritabanının değişime
> olan dirence, projenin open/closed source olup olmayacağı... gibi etkenler
> seçimlerimizi belirliyor. daha önce de yazdığım gibi; ben (ve çalıştığım
> projedeki insanlar) veritabanını sadece ilişkisel veriler için
> kullanıyoruz.
>
> trigger, stored procedure, view, function, standart sql de olmayan db ye
> has özel komutlar... gibi şeyleri kullanmak yanlıştır, aman ha kullanmayın
> demiyorum. bana göre sıkıntılı şeyler ve baş ağrıtabilir diyorum sadece.
>
>
>
> 2017-10-23 8:44 GMT+03:00 SEZAYİ BUĞDAYCI <sbugda...@etimaden.gov.tr>:
>
>> - Bu tür soruların hap çözümünü hemen vermek kolay değil. Sorgudan önce
>> tablo yapılarını, veri tabanı modellemesine bakmak sorunun daha net
>> anlaşılmasını sağlar.
>> Optimum çözümler onun üzerinden düşünülür.  Burada daha çok genel olası
>> şeyler önerilebilir.  Öncelikle Open Source yazılımlarda bu tür VT yapısı
>> nasıl oluşturulmuş ,
>> nasıl kodlar kullanılmış bakmakta fayda var.  (İncelendiğini sanıyorum)
>> - view, function, stored procedure ve trigger gibi veri tabanı
>> araçlarının kullanmama kararı programcının tercihi olabilir. Ancak doğru
>> yerinde doğru yapılandırılması,
>> Programcıyı birçok kod yazmaktan kurtarır ve  sağlam çalışır. Yanlış
>> yapılanması ise VT yi germesine neden olabilir.  Örneğin kayılardaki
>> işlemlerin loglarını trigger ile yapmak en iyisidir.
>> Trigger ile stok hesaplamak (Yine VT tasarımınıza bağlı olarak)  doğru
>> seçim olmaz.
>>
>>
>> İyi çalışmalar.
>>
>>
>>
>>
>> ------------------------------
>> *Kimden: *"M.Dumlupinar" <mdumlupi...@gmail.com>
>> *Kime: *"Özgür yazılımlarla çeşitli dillerde yazılım geliştirme" <
>> linux-programlama@liste.linux.org.tr>
>> *Gönderilenler: *22 Ekim Pazar 2017 18:41:56
>> *Konu: *[Linux-programlama] Re: ön muhasebe stok hesaplama
>>
>> benim dikkatimi ceken birsey var;
>> normalde yazilim tarafinin yapmasi gereken seyleri neden db tarafina
>> yaptirmissiniz. bu tur seyler faydadan cok zarar getirir.
>>
>> veritabanlari darbogazdir, calisma mantiklari basit kume teorilerine
>> dayanir yani kompleks veri tipleri gibi islemler de sikintiya sebep olur.
>>
>> standart sql disinda birseyler yazmaya basliyorsaniz bir yerlerde hata
>> vardi. bence bu tur yerleri duzeltmeden sorgularinizi elden gecirmeyin.
>>
>> performans adina, benim bir onceki calistigim yerde veritabaninda veriden
>> baska birsey (view, function, stored procedure ve trigger...) buldurulmazdi.
>>
>> suanki isyerimde durum biraz daha sıkı; hiçbir sekilde join dahi
>> kullanamiyoruz :)
>>
>>
>> 22 Ekim 2017 Pazar tarihinde, SEZAYİ BUĞDAYCI <sbugda...@etimaden.gov.tr>
>> yazdı:
>>
>>> Sorguda çok alt sorgu var, Dolayısı ile her alt sorgu zamanı artırdığı
>>> kanaatindeyim. Alt sorgular yerine view( MySQL de kullanılıyor mu
>>> bilmiyorum) kullanılması zamanı azaltabilir.
>>>
>>> İyi çalışmalar.
>>>
>>> ------------------------------
>>> *Kimden: *"ibrahim" <ibrahim...@gmail.com>
>>> *Kime: *"Özgür yazılımlarla çeşitli dillerde yazılım geliştirme" <
>>> linux-programlama@liste.linux.org.tr>
>>> *Gönderilenler: *20 Ekim Cuma 2017 23:18:49
>>> *Konu: *[Linux-programlama] ön muhasebe stok hesaplama
>>>
>>> Merhaba JAVA+MySQL(maria db) li bir ön muhasebe yazılımı üzerinde
>>> çalışıyorum.stok miktarını aşağıdaki sorgu ile hesaplıyorum ve sorguyu
>>> çalıştırdığımda sorgu süresi 16 sn alıyor. acaba sorgu süresi normal mi ?
>>> sorguda hata mı yapıyorum ?
>>>
>>> SELECT products_id as ID,prod_name as 'Ürün Adı',IFNULL((SELECT
>>>> sum(urun_adet) FROM `ktgcari_000_fatura_xref` where product_id=
>>>> ktgcari_000_stok.products_id and (type=1 or type=4)),0)-IFNULL((SELECT
>>>> sum(urun_adet) FROM `ktgcari_000_fatura_xref` where product_id=
>>>> ktgcari_000_stok.products_id and (type=2 or type=5)),0)+IFNULL((SELECT
>>>> sum(miktar) FROM ktgcari_000_ssayim where 
>>>> urun_id=ktgcari_000_stok.products_id),0)
>>>> as 'Stok' FROM ktgcari_000_stok LIMIT 0,1000
>>>
>>>
>>> (gelen fatura toplamı+gelen irsaliye toplamı)-(giden fatura
>>> toplamı+giden irsaliye toplamı)+(sayım fişi toplamı)
>>>
>>> Veritabanı Bilgileri:
>>> stok kartı sayısı: 39000
>>> fatura sayısı: 545
>>> fatura içeriği tablosu kayıt sayısı: 1800
>>> sayım fişi sayısı: 942
>>> veritabanı büyüklüğü: 5 MB
>>>
>>> --
>>> --
>>> Saygılarımla,
>>> İbrahim Halil
>>>
>>> _______________________________________________
>>> Linux-programlama mailing list
>>> Linux-programlama@liste.linux.org.tr
>>> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>>
>>> --
>>> *SEZAYİ BUĞDAYCI*
>>> *Eti Maden İşletmeleri Genel Müd.*
>>> Yön. Bil. Sis. Dai. Başkanı
>>>
>>> Ayvalı Mah. Halil Sezai Erkut Cad.
>>> Afra Sk. No 1/A 06010 Etlik-Keçiören/ANKARA
>>> Tel: +90(312) 294 21 52 <+90%20312%20294%2021%2052>,   (530) 693 34 36
>>> e-posta: sbugda...@etimaden.gov.tr
>>>
>>
>>
>> --
>> İyi çalışmalar...
>>
>> Mustafa DUMLUPINAR
>> https://github.com/seyhanp
>>
>>
>> _______________________________________________
>> Linux-programlama mailing list
>> Linux-programlama@liste.linux.org.tr
>> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>
>> --
>> *SEZAYİ BUĞDAYCI*
>> *Eti Maden İşletmeleri Genel Müd.*
>> Yön. Bil. Sis. Dai. Başkanı
>>
>> Ayvalı Mah. Halil Sezai Erkut Cad.
>> Afra Sk. No 1/A 06010 Etlik-Keçiören/ANKARA
>> Tel: +90(312) 294 21 52 <+90%20312%20294%2021%2052>,   (530) 693 34 36
>> e-posta: sbugda...@etimaden.gov.tr
>>
>> _______________________________________________
>> Linux-programlama mailing list
>> Linux-programlama@liste.linux.org.tr
>> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>
>>
>
>
> --
> İyi çalışmalar...
>
> Mustafa DUMLUPINAR
> https://github.com/seyhanp
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama@liste.linux.org.tr
> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
>


-- 
-- 
Saygılarımla,
İbrahim Halil KURTGÖZ
PHP, MySQL, JAVA Geliştiricisi
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap