FilemakerTurk, AYS Bilişim ve Beyaz Net tarafından desteklenmektedir.
Filemaker Danışmanınız
AYS Bilişim
Mehmet KAYA
 0532 231 07 27
 0216 318 55 80
 mkaya@aysbilisim.net
						

SQL HAKKINDA BİLGİ TALEBİ

+2 oy
844 kez görüntülendi
Merhaba

Tablo1 den, tablo2 de ki global alanlara  veri çekilecek. Bu işlemi tablo2 de belirlenen değeri değişkene alıp tablo1 de buldurulacak. değerleri değişkene alıp tablo2 ye set etmesimi yoksa Sql metoduyla set edilmesini hızlıdır? Sql ile yapılırsa ne gibi olumsuzluk olur? platform vs. Tablo1 de milyonlarca kayıt olacaktır.
30, Eylül, 2019 SQL kategorisinde Muhteshem (52,960 puan) tarafından soruldu

5 Cevaplar

+4 oy
 
En İyi Cevap

Execute SQL ile Perform Find karşılaştırması yaptık Muhteshem hocam ile.

Karşılaştırma dosyasını indirmek için tıklayınız.

İncelediğimiz kadarıyla 4.8 Milyon kayıtta benzersiz bir number değerde sorgu yapıldığında her ikiside aynı performansı verdi. Ama text alanlarda sorgu yaptığımızda ve bulunan kayıt sayısı hatta bulunan kayıtlardaki field sayısı fieldlerdeki değerlerin büyüklüğü arttıkça ExecuteSQL sorgularının sonucu da o kadar yavaşlamakta. Bu kriterlere dikkat ederek kendi işleyinize uygun olan seçeneği kullanabilirsiniz.

1, Ekim, 2019 mkanlioglu (62,490 puan) tarafından cevaplandı
5, Ekim, 2019 Mehmet KAYA tarafından seçilmiş
+2 oy
Sql 40 bin üstü kayıtta yavaşlar. Tabi sistem perfarmansı fm versiyonu gibi faktörlerde var. Betik ile yapılması daha sağlıklı.
30, Eylül, 2019 Goksel_Gokce (96,810 puan) tarafından cevaplandı
+2 oy
tablo 1'ler 2'ler karıştı :S

 

basit bir test dosyası oluşturup karşılaştırılabilir. Ama execute sql'de cache yok, bir soru her çalıştığında her seferinde vt motoruna gider gelir.

 

psos (perform script on server) performansa ciddi faydaları var. ama kısıtları ve dezavantajları da görüp ona göre kullanmakta fayda var.
30, Eylül, 2019 F. Osman Cabi (197,820 puan) tarafından cevaplandı
+2 oy
Öncelikle arama yaptırılacak tablo 1 de milyonlarca kayıt olacağından dolayı SQL komutlarıyla yapmayın çok yavaş olur ve hatta kilitlenebilir bile. Tablo 2 de değişkene almayı düşündüğünüz alanlar global ise hiç değişkene almanıza gerek yok çünkü global alanlardaki değerlere her layout'ta her modda (Browse mode ve Find mode) erişebilirsiniz. Tablo 1 de arama yaptıracağınız alanlar indexed olsun ve calculation olmasın. Sonrasında ister bulduğunuz yerden direk Tablo 2 deki global alanlar set field yapın isterseniz de bulduğunuz verileri değişkene alın sonra tablo 2 layoutuna gidip set field yapın aynı şey. Kolay gelsin.
30, Eylül, 2019 mkanlioglu (62,490 puan) tarafından cevaplandı
+1 oy
1- İki tablo arası stkKod ile ilişki kur

2- UrunBilgileri Tablosuna Kontrol diye bir calculation alan ekele

3- Calculation alana
if(Urunbilgileri::stkKod= DepoSayim::stokKod; 1;0)

4-Kontrol alanında 0 buldur.

Sayıma eklenmeyen leri bulursun.
Bende en hızlı sonuç veren yöntem budur. Deneyimle sabittir.
28, Nisan, 2023 Mehmet KAYA (165,360 puan) tarafından cevaplandı
...