[]

Programlama

Hayatını kodlara adamış full-stack developer panpalar,

Az yaklaşın, sizi sorularımla biraz rahatsız etmek istiyorum.
Bu işe amatör olarak gönül verip ufaktan yarı profesyonel kategorisine adım atmaktayım. Ancak yazılımın belli aşamalarında kafama sorular takılıyor ve danışacak yüce kişiliklere ihtiyacım oluyor.

Visual Basic tabanlı, Access DBli bir şeyler çıkarıyorum ortaya. Bu alandaki sorularıma yanıt verecek yetkinlikte olduğunuzu düşünüyorsanız mesajınızı esirgemeyiniz.

Mesela, veritabanına bağlanırkan bağlantıyı kurup sürekli olarak açık tutmak mı mantıklı, yoksa query ihtiyacı olan her an bağlanıp sonra bağlantıyı sonlandırmak mı?

Devamı gelecek..

 
Sorulan soruya visual basic ozelinde degil de her programlama dilinde karsilasilan bir problem oldugu icin genel olarak cevap vereyim.

Bir veri tabanina ilk baglanti kurma asamasi en cok zaman alan kisimdir ve performansi ciddi dusurur. her bir sorguda yeni baglanti acmak bu nedenle verimli olmaz. Diger taraftan da baglanti acip ayni baglantiyi tekrar tekrar kullanmak ise sistem kaynaklarinin gereksiz sekilde bosa kullanilmasi demektir, cunku ornegin 100 farkli kullanici icin 100 farkli baglanti actin. ama bu 100 kullanicinin cogu bir kere sorgu yapti ve bir daha belki yapmayacak. bu nedenle baglantinin ne zaman kapatiliacagini bilmemek de bir probleme neden oluyor. Tum bunlar nedeniyle her programlama dilinde "Connection pool" yani baglantilar icin cache sistemi kullanilmasi/yazilmasi onerilir.
  • emrahday  (10.10.18 10:36:29 ~ 10:36:59) 
Selamlar,

@emrahday "connection pooling" hakkında bahsetmiş, çok fazla bağlantı olacaksa, remote database kullanacaksan performans için kullanman gerekiyor.

Eğer tabloları access'te oluşturup VB ile aynı bilgisayardaki bir database'e erişeceksen bırak bağlantı açık kalsın, en fazla işlem yapmadan önce bağlantı açık mı diye kontrol edersin :

Dim sqlBaglantisi As SqlConnection = New SqlConnection("Connection String")

If sqlBaglantisi.State <> ConnectionState.Open Then
sqlBaglantisi.Open()
End If
  • kimlanbu  (10.10.18 11:05:16) 
@kimlanbu, DB aynı bilgisayarda değil, ortak ağ üzerinde.
10 kişilik bir kullanıcı kitlesi erişiyor.

Bu durumda hangisi daha mantıklı olur sence?
  • cakabo  (10.10.18 11:16:08) 
access aynı anda farklı kullanıcının connection açmasına izin vermez, sıraya sokar. dolayısı ile kapanmayan connection sorun olabilir.

sql server express, mysql gibi "gerçek" veritabanlarına yönelebilirsiniz. sql lite bile işinizi görecek fonksiyonları sağlar.

access dışında connection durumunu yapılan işleme göre karar vermek daha mantıklı olabilir. belirli bir döngü içerisinde yapılacaksa önce connection açılır, döngüsel işlem yapılır, connection kapatılır, yok eğer veritabanına gidip arada işlem yapıp yeniden veritabanına gidilecekse ayrı ayrı açıp kapatılabilir.
  • altinci nesil caylak  (10.10.18 11:47:51 ~ 11:51:15) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.