Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Stored Procedure LIMIT Sorunu
#1
Stored Procedure 'e LIMIT neden parametre olarak geçilemez ?

Bu sorunu nasıl aşıyorsunuz ?
WWW
Cevapla
#2
(03-08-2018, Saat: 18:01)yhackup Adlı Kullanıcıdan Alıntı: Stored Procedure 'e LIMIT neden parametre olarak geçilemez ?

Bu sorunu nasıl aşıyorsunuz ?
Anladığım kadarıyla 5.5.6 surumu sonrasina eklenmis.
https://stackoverflow.com/questions/2875...ysql-sproc
Cevapla
#3
Evet ama 5.1de kullanabilmem lazımdı.

Tuğrul abi sağolsun güzel bir fikir verdi, yarın deneyip burada paylaşırım
WWW
Cevapla
#4
@yhackup, paginasyon ile ilgili bir makale yayınlamıştım, orada paylaştığım örnek bu sorunu nasıl aşabileceğini içeren bir örnek barındırıyor...

http://www.delphican.com/sql-server-mysq...ation.html
YouTube Delphi Tips
"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" Peyami Safa
WWW
Cevapla
#5
(04-08-2018, Saat: 08:29)uparlayan Adlı Kullanıcıdan Alıntı: @yhackup, paginasyon ile ilgili bir makale yayınlamıştım, orada paylaştığım örnek bu sorunu nasıl aşabileceğini içeren bir örnek barındırıyor...

http://www.delphican.com/sql-server-mysq...ation.html

Bu yöntemi biliyorum fakat , Delphi içerisinden bu sqli çağırmak ile , sp'den çağırmak arasında fark yok. Bu kullanımda mysql kodu optimize edemeyecek büyük verilerde özellikle hız farkı doğuracaktır.
WWW
Cevapla
#6
(04-08-2018, Saat: 08:38)yhackup Adlı Kullanıcıdan Alıntı:
(04-08-2018, Saat: 08:29)uparlayan Adlı Kullanıcıdan Alıntı: @yhackup, paginasyon ile ilgili bir makale yayınlamıştım, orada paylaştığım örnek bu sorunu nasıl aşabileceğini içeren bir örnek barındırıyor...

http://www.delphican.com/sql-server-mysq...ation.html

Bu yöntemi biliyorum fakat , Delphi içerisinden bu sqli çapırmak ile , sp'den çağırmak arasında fark yok. Bu kullanımda mysql kodu optimize edemeyecek büyük verilerde özellikle hız farkı doğuracaktır.

Tuğrul abinin verdiği fikri merak etmeye başladık...
YouTube Delphi Tips
"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" Peyami Safa
WWW
Cevapla
#7
Senaryo şöyle , 

4 tabloya join atmamı gerektiren ve karmaşık where conditiona sahip uzunca bir scriptim var.

Bu kalabalık sqli delphi tarafında görmek istemiyorum ve Her seferinde sqli delphi tarafından çağırdığım için mysql de optimize edemiyor.

Yazdığım sql'in dinamik bir limiti var işlemci sayısı * 2  (her row için yeni bir Thread create ediliyor) , 

Fakat büyük müşterimizin sunucu işlemcisi şimdiye kadar 20 idi,  * 2 = 40 yapıyor. Ama paket uygulama olduğu için tek işlemcili olan bilgisayarda da çalışması gerekiyor.

Sp nimetlerinden de faydalanmak istiyorum , öncelikle tahmini maximum limit belirterek LIMIT 60 ile temporary table oluşturuyorum.
Select cümlemin başına bir sayaç atıyorum.

  (@row_number := @row_number + 1) AS NCount,

Sonra Temporary table'i çağırıyorum bu şekilde,
SELECT *FROM myQuery WHERE NCount <= $limiter;
WWW
Cevapla
#8
volkan beyden daha farklı bir öneri aldım, başka intger veri dönen bir function ile hallettim.
WWW
Cevapla
#9
(04-08-2018, Saat: 13:56)yhackup Adlı Kullanıcıdan Alıntı: volkan beyden daha farklı bir öneri aldım, başka intger veri dönen bir function ile hallettim.

@yhackup  Sorununuzu çözmenize sevindim, nasıl çözüldüğüne dair bir kod örneği paylaşırsanız sanırım forumun diğer kullanıcıları da bundan faydalanabilir...
YouTube Delphi Tips
"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" Peyami Safa
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  MySQL Bağlantı Sorunu - MEB akıllı tahta Frrst 6 1.508 10-11-2022, Saat: 23:16
Son Yorum: mcuyan
  Stored Procedure Syntaxı LastCoder 1 1.636 20-10-2019, Saat: 23:34
Son Yorum: LastCoder
  MySQL 8 - Trigger After Delete Sorunu / FOREIGN KEY hi_selamlar 3 3.113 10-01-2019, Saat: 13:56
Son Yorum: Tuğrul HELVACI
Exclamation MySQL 8 - Incorrect number of arguments for PROCEDURE hi_selamlar 8 5.143 08-01-2019, Saat: 00:05
Son Yorum: hi_selamlar



Konuyu Okuyanlar: 1 Ziyaretçi