




Farklı Para Birimlerine Ait Fiyat Bilgisinin Sıralanması [DB]
-
Stored procedure döviz kuru tablosunda güncelleme olunca ürünlerde ilgili tl karşılığını toplu şekilde günceller. Bu sayede döviz kurunu çektikten sonra kuyruğa işlem eklemeniz gerekmeyecek ve bu işlemi php ile yapmaktan daha performanslı.
Tercih sizin tabi hocam da bu şekilde yapmanız teknik borç oluşturacak ve ilerde tekrar güncelleme gerektirecektir diye düşünüyorum.
-
TeRRoR bunu yazdıyolbulucu bunu yazdıTeRRoR bunu yazdı
Herkese teşekkürler. Fiyat kolonunu varsayılan para biriminde tutup ekstra kolonda doviz halini tutup ayrıca ürünü doviz birimi ile ilişkilendirdim. Belirli aralıklarla cron job ile döviz*kur ile fiyat kolonunu güncellicem. Umarım yarın bir gün UPDATE 2 gün sürüyor nasıl optimize ederiz diye konu açmam.
şimdiden stored procedure ile update et hacı. ya da direkt kura göre where yap
"update table set `tl_karsilik` = doviz_fiyat*7.75where `doviz` = 'USD'"
hocam store procedure önermenin özel bir sebebi varmı?
daha performanslı olur ve cron yerine update/insert gibi işlemlerde triggerlayabilirsin.
-
TeRRoR bunu yazdıyolbulucu bunu yazdıTeRRoR bunu yazdı
Herkese teşekkürler. Fiyat kolonunu varsayılan para biriminde tutup ekstra kolonda doviz halini tutup ayrıca ürünü doviz birimi ile ilişkilendirdim. Belirli aralıklarla cron job ile döviz*kur ile fiyat kolonunu güncellicem. Umarım yarın bir gün UPDATE 2 gün sürüyor nasıl optimize ederiz diye konu açmam.
şimdiden stored procedure ile update et hacı. ya da direkt kura göre where yap
"update table set `tl_karsilik` = doviz_fiyat*7.75where `doviz` = 'USD'"
hocam store procedure önermenin özel bir sebebi varmı?
Cache mekanizması sayesinde işlemi bellekte database tarafında işliyor, 1 kez tetiklendiğinde, cache mekanizması işliyor ve tanınıyor. Aynı işlem için her defasında php gidip sorgu yapmıyor. Zaten mekanizmalaşmış yapı sayesinde büyük yük azalıyor. Her deneme de tekrar php-sunucu-php-sunucu olmuyor.
Site e-ticaret sitesi ve günlük en az 50 tane sıralama yapıldığı için stored procedure tarafında ageing(yaşlanma) probleminin de önüne otomatikten geçmiş oluyorsun diyebiliriz hocam
-
coder2 bunu yazdı
Stored procedure döviz kuru tablosunda güncelleme olunca ürünlerde ilgili tl karşılığını toplu şekilde günceller. Bu sayede döviz kurunu çektikten sonra kuyruğa işlem eklemeniz gerekmeyecek ve bu işlemi php ile yapmaktan daha performanslı.
Tercih sizin tabi hocam da bu şekilde yapmanız teknik borç oluşturacak ve ilerde tekrar güncelleme gerektirecektir diye düşünüyorum.
Hah şimdi oturdu mevzu, döviz tablosunda update/insertta triggerla store procedure çağırıp işlemi yaptırmak. @yolbulucu sadece store procedure diyince anlayamamıştım teşekkürler hocam.
-
Roark bunu yazdıTeRRoR bunu yazdıyolbulucu bunu yazdıTeRRoR bunu yazdı
Herkese teşekkürler. Fiyat kolonunu varsayılan para biriminde tutup ekstra kolonda doviz halini tutup ayrıca ürünü doviz birimi ile ilişkilendirdim. Belirli aralıklarla cron job ile döviz*kur ile fiyat kolonunu güncellicem. Umarım yarın bir gün UPDATE 2 gün sürüyor nasıl optimize ederiz diye konu açmam.
şimdiden stored procedure ile update et hacı. ya da direkt kura göre where yap
"update table set `tl_karsilik` = doviz_fiyat*7.75where `doviz` = 'USD'"
hocam store procedure önermenin özel bir sebebi varmı?
Cache mekanizması sayesinde işlemi bellekte database tarafında işliyor, 1 kez tetiklendiğinde, cache mekanizması işliyor ve tanınıyor. Aynı işlem için her defasında php gidip sorgu yapmıyor. Zaten mekanizmalaşmış yapı sayesinde büyük yük azalıyor. Her deneme de tekrar php-sunucu-php-sunucu olmuyor.
Site e-ticaret sitesi ve günlük en az 50 tane sıralama yapıldığı için stored procedure tarafında ageing(yaşlanma) probleminin de önüne otomatikten geçmiş oluyorsun diyebiliriz hocam
Hocam biraz daha açar mısın tam olarak anlayamadım. Hemde bilgimiz olsun :)
-
Güzel soru,
Performansı artırmak için seçici kriter koymak gerekebilir. 500K kayıt var dedin ama bu kayıtların bir türü yok mu? Sql e verebilceğin bir eşitlik olmalı kümeyi daraltmalısın bence.
Bi de şöyle yapardım, belli kitleyi alır backend de TL leri hesaplar .orderby ile sıralardım. Sql içinde index bozmaması için calculate yapmazdım. Hesabı eğer .net se mesela linq ile yapardım.
Kur değiştikçe SP ile tabloyu sürekli update etmek DB tarafınını yorar bence.