Tüm Platformlar için Hızlı Uygulama Geliştirme Kitap Yayın Süreci
Kitap gözden geçirilmek üzere BTG (Bilgi ve Teknoloji Grubu) 'na gönderildi. 05.10.2018-14:10
BTG (Bilgi ve Teknoloji Grubu) tarafından iki sayfalık bir reklam tasarımı bekleniyor. 08.10.2018 - 15:30

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
SQLite veritabanında eş zamanlı kaç kullanıcı işlem yapabilir?
#1
Merhaba,

Bir projede SQLite kullanmaya karar verdim. Ancak projede eş zamanlı birden fazla kullanıcının işlem yapması gerekecek. Hatta 1 client üzerinde 2 farklı uygulama bağlanıp crud işlemlerini gerçekleştirecek. Bununla ilgili herhangi bir limitleme söz konusu mudur?

Sqlitebrowser.exe adında portable bir yönetim programı buldum. Orada revizyon yaparken IDE üzerinden aynı veritabanına bağlanan projeyi derlediğim an [FireDac][SQLite] kütüphanesi veritabanının kilitlendiği ile ilgili bir dönüş verdi. Tek kullanıcı bazlı bir veritabanı olup olmama konusunda şüpheye kapıldım.

İnternette yaptığım araştırma sonucunda çoğunluk multi-user desteğinin olduğunu söylüyor. Kendi yaptığım testlerde ise kullanıcı endeksli işlem olduğu için tam sağlıklı ve eş zamanlı bir test yapamadım. SQLite'ın FAQ'sunu okurken birden fazla kullanıcının SELECT işlemini yapabileceğini ancak herhangi bir zamanda yazma işlemi yapılacağında bu sadece 1 kullanıcı ile mümkün olacaktır diyor. Buradan anlamam gereken bir kuyruk veya pool mantığı mı yoksa eş zamanlı gelen diğer talepleri sıraya koymadan yok mu ediyor?

Konu ile ilgili hızlı dönüşlerinizi bekliyorum. Teşekkürler.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#2
SQlite çok kullanıcı bağlanma özelliği yok. SQLite için araç geliştiren bir firma vardı onlar çok kullanıcı kullanmanı sağlıyordu tabi ücretli.
Cevapla
#3
Merhaba;

Ben Çağlar bey'in aksini biliyorum yani sorun olmaz. Bununla ilgili kendi sitelerinde de aksi bir durum belirtilmemiş.
iki farklı sqllite aracıyla aynı database açıp işlemler yaptığımda hiçbir hatayla karşılaşmadım.

Kendi sitelerinde Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol açıklamalarda mevcut, fakat reel de bende böyle bir kullanım yapmadım belki yapan varsa daha doğru bir sonuca ulaşılabilir.

Alıntı:We are aware of no other embedded SQL database engine that supports as much concurrency as SQLite. SQLite allows multiple processes to have the database file open at once, and for multiple processes to read the database at once. When any process wants to write, it must lock the entire database file for the duration of its update. But that normally only takes a few milliseconds. Other processes just wait on the writer to finish then continue about their business. Other embedded SQL database engines typically only allow a single process to connect to the database at once.

*Sizin soruyu tekrar okuyunca tekrar sitelerinden okudum işlemin yapılabildiğini fakat birkaç milisaniye veri tabanının kilitlendiğini yazıyor tabi yanlış anlama çevirme olabilir.

Konuyla ilgili Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol incelemeniz  de faydalı olabilir.

İyi çalışmalar.
Cevapla
#4
Sizin sorunun kafama takılmasıyla birlikte geceyi bulduk Smile
Alıntı:database is locked.

 uyarısını bende alıyorum ve tek kullanıcıda bile bunu nasıl aldığımı anlayamıyorum!
Cevapla
#5
(08-09-2017, Saat: 00:21)pro_imaj Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlSizin sorunun kafama takılmasıyla birlikte geceyi bulduk Smile
Alıntı:database is locked.

 uyarısını bende alıyorum ve tek kullanıcıda bile bunu nasıl aldığımı anlayamıyorum!

Hocam sqlitebrowser adında bir portable sql manager uygulaması bulunuyor. Orada aktifken FDConnection açıksa, yada proje çalışıyorsa, Delphi runtime hatası döndürüyor "database is locked" şeklinde. Aynı şey, önce proje derlenince, sonra sql programını çalıştırınca farklı şekilde yansıtıyor. Bu kez şifresiz veritabanına dahi şifre istiyor Smile

2 Client exe tek bilgisayar üzerinden bağladım, sorunsuz şekilde SELECT yapıyor. Insert için daha seri bir test yapmam gerekiyor. Yaptığım zaman sonuçları detaylıca bu başlıkta toplayacağım.
Save
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#6
(08-09-2017, Saat: 11:26)Abdullah Ilgaz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlInsert için daha seri bir test yapmam gerekiyor

Bir INSERT trigger'ı yazılsa ve burada bekletme konulsa; acaba birden fazla INSERT test etme imkanı oluşmuş olur mu?
There's no place like 127.0.0.1
WWW
Cevapla
#7
(08-09-2017, Saat: 11:29)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(08-09-2017, Saat: 11:26)Abdullah Ilgaz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlInsert için daha seri bir test yapmam gerekiyor

Bir INSERT trigger'ı yazılsa ve burada bekletme konulsa; acaba birden fazla INSERT test etme imkanı oluşmuş olur mu?

Hocam ortalama 5-10 dakika süreyle 2 farklı kullanıcıdan alınacak verinin seri işlenmesi ve ortalama 4-5 farklı tabloya veri basması gerekiyor. Aslında projenin geliştirmesi devam ettiği için trigger yazmaya vakit ayırmamıştım ama en pratik öyle test edebileceğim gibi gözüküyor. İşlemi tamamlayınca buraya yazacağım Smile
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#8
Selam, peki sqllite yerine Access kullanilsa ? ben Access ile bir veritabanina firmada 16 bilgisayardan baglanip veri alip yazdiriyordum.
Cevapla
#9
(10-09-2017, Saat: 22:11)Ugur Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlSelam, peki sqllite yerine Access kullanilsa ? ben Access ile bir veritabanina firmada 16 bilgisayardan baglanip veri alip yazdiriyordum.

Android/ios tarafında mı kullandınız?
Cevapla
#10
(11-09-2017, Saat: 21:02)pro_imaj Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(10-09-2017, Saat: 22:11)Ugur Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlSelam, peki sqllite yerine Access kullanilsa ? ben Access ile bir veritabanina firmada 16 bilgisayardan baglanip veri alip yazdiriyordum.

Android/ios tarafında mı kullandınız?

yok hayir, is yerine ki bilgisayarlar ile. Ilk mesajinizda Android kullanacaginizi yazmadiginizdan, normal biligisyar ile baglanacaginizi düsünüp cevap yazmistim.
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  sqlite oluşturma-android içerisinde kullanma ? Mr.Developer 8 346 30-05-2018, Saat: 23:25
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi