Selamlar,

MSSQL server üzerinde bir kullanıcı oluşturacağınızı düşünün ve e-posta alanı unique index e sahip. Kullanıcıyı insert ederken hatayı alıp bu hatayı dönmek mi performanslıdır. Yoksa bu e posta var mı diye kontrol edip yoksa insert etmek mi?

mantık olara exception hanling i bu şekilde kullanmamak gerekiyor diye biliyorum ama 100 bin kayıt olan bir kullanıcı veritabanında önceden selectle bunları arasında var mı diye bakmak ve sonra insert etmek daha fazla zaman alır mı bilemedim, bilgisi olan var mı?

soruldu: 27 Şub '14, 08:37

%C3%96nder's gravatar image

Önder
816142333
cevap kabul oranı: 26%


:) tabi ki hata almamak daha performanslidir.

Bu örnekte ise hata alip kullaniciya dönmek tabi ki tercih edilen. Ornegin 1000 kullanici kayit olacak 1 haftada ve bunlardan 50 tanesi bahsettigin hataya dusecek. 50'si icin exception almalisin yoksa db interaction'ini 2 katina cikarirsin performans olarak da yaklasik 2 katina cikar.

bu arada 100.000 kayit hic sikinti degil, enterprise sistemlerde milyarlarca ve daha fazlasi kayitlarla ugrasiyoruz. Yani icin rahat olsun ;)

permanent link

cevaplandı: 27 Şub '14, 09:11

MCY's gravatar image

MCY
1.1k2622
cevap kabul oranı: 16%

@MCY bir soru daha sorayım izninle, aynı anda bir çok kullanıcının sorgu yapacağı bir db de kayıtları nosql (mongo db) bir db ye eşzamanlı olarak insert edip select sorgularını bunun üzerinden çekmeyi planlıyorum. 10 bin kullanıcının aynı anda kullandığı bir oyunda kullanıcının login işlerimleri için bu no sql db yi kullanmayı düşünüyorum. Buna gerek var mı yoksa MsSql server bu sayıları zorlanmadan kaldırabilir mi? Sql server load balancing üzerine biraz araştırma yaptım ama cluster sadece sunucuya birşey olursa diğerini çalıştırmak için yapılıyor load balancing için değil.doğru mu?

(27 Şub '14, 09:55) Önder %C3%96nder's gravatar image

Load balancing adi uzerinde, yuku dengelemek amaciyla kullaniriz. Kritik sistemlerde ayni diske yazabilen farkli makina ayarlariz ki makinalardan birisi down olursa load balancer tum yuku diger makinaya aktarabilsin. RAC kavramini arastirabilirsin.

Islemlerin bir kismini ikinci bir dbye cekmek cok anlamsiz. Tablo yapini dogru kurgularsan, constraintlerini, relationlationlarini dogru kurarsan, indexleri partitionlari adam edersen performans konusunda hicbir soru isaretin olmasin, 10000 degil 10 milyon kullanicin olsa sikinti olmaz.

(27 Şub '14, 11:14) MCY MCY's gravatar image

teşekkürler.

(28 Şub '14, 03:02) Önder %C3%96nder's gravatar image

Cevap sorununuzu çözmüşse "doğru cevap" olarak işaretlemelisiniz.

(28 Şub '14, 03:58) mhkoca60 mhkoca60's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×53
×8

Soruldu: 27 Şub '14, 08:37

Görüntüleme: 525 kez

Son güncelleme: 28 Şub '14, 03:58

powered by BitNami OSQA