Re: [Linux-programlama] A Fark B (SQL)

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Serdar KÖYLÜ (serdarkoylu@fisek.com.tr)
Date: Mon 24 Jan 2005 - 15:44:24 EET


Selamlar..

Pek bir şey anlamadım ama, anladığım uygulamanızın yapısında bir sorun
olduğu.

Basitçe index konusuna bakalım. Index, her update işlevinde kabul
edilebilir bir zaman kaybına karşılık sorgulama işlevlerini dramatik
şekilde artıran bir mekanizmadır. Kullanıcı giriş yaparken saniyenin
1/10'u kadar olan (farazi, sallama bir değer elbette..) bu farkı
hissetmez. Bir fatura örneğin 100 satırdan oluşur. Index yüzünden
kaybedilen süre 1 sn ise, toplam kayıt süresi mesela en az 25 sn. olur.

Eğer böyle çapraz sorgulama işlevlerine (DB Engine destekli olması veya
olmaması (OUTER JOIN ??) farketmeden) böyle bodoslama girerseniz bu tür
dehşet verici performans kayıplarına maruz kalmanız gayet doğaldır.

Bence, bu sorunu kayıtları oraya eklerken çözecek bir mekanizma düşünün.
Bu sayede görülür performansta kabul edilir bir düşüş olacaktır elbette,
ama toplam performans kazancınız müşteriyi daha çok memnun edecektir.

Optimizasyon denen kavram, bu gibi durumlarda öne çıkar. Veritabanı
yapınız, Kayıt deseninizi (fields, update/insert/delete çevrimleri vs.)
vs. bilmeden elle tutulur bir çözüm önerme şansımız yok maalesef.

Saygı ve sevgiler..

> Merhabalar ...
>
> Elimde A ve B isimli iki table var.
> icinde de sadece bir adet field var varchar(128) tipinde
> A table i dune ait , B table ise bugune ait
> A table inda ve B table inda count(*) ciktisi yaklasik esit 5 milyon kusur
> Kayitlar gunluk olarak degiskenlik gosteriyor ...
> Sql den en hizli bir sekilde A fark B yi ( matematiksel anlatim : A/B
> ) bulmaya calisiyorum?
> Yani A table inda bulunupta B table inda olmayan kayitlar
>
> Bazi denemeler yaptim ama bana sure cok uzun geldi ...
> 10 bin kusur kaydi mysql de denedim .. ve 8 dakika gibi bir sureyle karsilastim
> Netice olarak mysql isimi gormeyecek bunun farkindayim.
> Cunku bu 5 milyon kayitli table larimdan yaklasik esit 60 kusur olucak
> ve ben bu kayitlardaki farklari gunluk olarak almaliyim.
>
> Bu sartlar dogrultusunda .. sql sorgusunu sizce nasil yapmaliyim ki
> zaman konusunda buyuk bir kazanc saglayayim ???
>
> Yada sizce hangi veritabani kullanmaliyim ki ... bu konuda buyuk bir
> arti kazanayim...
>
> Ayrica su an denemelerimi Firebird ile yapmaktayim ..
> farkli bir veritabani da deneyebilirim .. yeterki isimi gorecegini
> soyleyin yeter :)
>
> Herkese iyi calismalar ....

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.