Delphi Can
SQLite veritabanında eş zamanlı kaç kullanıcı işlem yapabilir? - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Veri Tabanı (https://www.delphican.com/forumdisplay.php?fid=4)
+--- Forum: Diğer Veri Tabanları (https://www.delphican.com/forumdisplay.php?fid=18)
+--- Konu Başlığı: SQLite veritabanında eş zamanlı kaç kullanıcı işlem yapabilir? (/showthread.php?tid=1310)

Sayfalar: 1 2


SQLite veritabanında eş zamanlı kaç kullanıcı işlem yapabilir? - Abdullah ILGAZ - 07-09-2017

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.


SQLite veritabanında eş zamanlı kaç kullanıcı işlem yapabilir? - CaglarCoskun - 07-09-2017

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.


SQLite veritabanında eş zamanlı kaç kullanıcı işlem yapabilir? - pro_imaj - 07-09-2017

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 konu hakkında 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 burayı incelemeniz  de faydalı olabilir.

İyi çalışmalar.


SQLite veritabanında eş zamanlı kaç kullanıcı işlem yapabilir? - pro_imaj - 08-09-2017

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!


Cvp: SQLite veritabanında eş zamanlı kaç kullanıcı işlem yapabilir? - Abdullah ILGAZ - 08-09-2017

(08-09-2017, Saat: 00:21)pro_imaj Adlı Kullanıcıdan Alıntı: 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!

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


SQLite veritabanında eş zamanlı kaç kullanıcı işlem yapabilir? - SimaWB - 08-09-2017

(08-09-2017, Saat: 11:26)Abdullah Ilgaz Adlı Kullanıcıdan Alıntı: Insert 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?


Cvp: SQLite veritabanında eş zamanlı kaç kullanıcı işlem yapabilir? - Abdullah ILGAZ - 08-09-2017

(08-09-2017, Saat: 11:29)SimaWB Adlı Kullanıcıdan Alıntı:
(08-09-2017, Saat: 11:26)Abdullah Ilgaz Adlı Kullanıcıdan Alıntı: Insert 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


SQLite veritabanında eş zamanlı kaç kullanıcı işlem yapabilir? - Ugur - 10-09-2017

Selam, peki sqllite yerine Access kullanilsa ? ben Access ile bir veritabanina firmada 16 bilgisayardan baglanip veri alip yazdiriyordum.


Cvp: SQLite veritabanında eş zamanlı kaç kullanıcı işlem yapabilir? - pro_imaj - 11-09-2017

(10-09-2017, Saat: 22:11)Ugur Adlı Kullanıcıdan Alıntı: Selam, 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?


Cvp: SQLite veritabanında eş zamanlı kaç kullanıcı işlem yapabilir? - Ugur - 11-09-2017

(11-09-2017, Saat: 21:02)pro_imaj Adlı Kullanıcıdan Alıntı:
(10-09-2017, Saat: 22:11)Ugur Adlı Kullanıcıdan Alıntı: Selam, 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.