SQLite, Perl DBD :: SQLite kullanırken tek bir işlemde ikinci bir sorgu için "veritabanı kilitli" hatası veren SQLite ile ilgili bilinen bir sorun mu var? Senaryo: Linux, Perl DBI, AutoCommit => 0, iki kod bloğu olan bir altprogram (değişken adlarını yerelleştirmek için blokları kullanarak). Birinci kod bloğunda, bir select deyimi üzerinde hazırla() tarafından bir sorgu tutamacı oluşturulur, yürütülür() ve blok kapatılır. İkinci kod bloğu, başka bir sorgu tanıtıcısı bir güncelleme deyimi için hazırlanır ve sık sık (zamanın% 30'u) SQLite/DBI, bu aşamada veritabanı kilitli bir hata verir. Ben hata(), execute() sırasında değil, hazırlanma sırasında olduğunu düşünüyorum.Perl'in DBD :: SQLite kullanıldığında, SQLite neden işlemin ikinci bir sorgu için "veritabanı kilitli" olduğunu gösteriyor?
Benim çalışmam ilk sorgudan sonra işlemek. (İlk sorguda arama bitirme yardım etmedi). Zarafet ve performansla ilgili birkaç nedenden dolayı taahhüt etmemeyi tercih ediyorum. Orijinal kod, Postgres ile uzun yıllar boyunca veri tabanı olarak iyi çalıştı. Efekti olmadan sqlite_use_immediate_transaction denedim.
Diğer tüm durumlarda, SQLite'i çok iyi bir performans sergileyecek şekilde buldum, bu yüzden bunun SQLite ile ilgili bir sorundan ziyade DBD sürücüsündeki bir gözetim olduğundan şüpheleniyorum. Ne yazık ki, şu anki kodum çok sayıda komut dosyası ve modül yığınıdır, bu yüzden kısa, tek bir dosya test vakam yok.
Sorunu gösteren küçük test durumunuzu bize gösterebilir misiniz? –