Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Error: database is locked

Dieses Thema im Forum "SQLite" wurde erstellt von free.runn3r, 26 April 2015.

  1. free.runn3r

    free.runn3r Benutzer

    Hi,

    in einer kleinen C#-Testanwendung füge ich 5.000.000 Zeilen in eine SQLite-Datenbank ein.
    Ablauf:
    1. Datenbank öffnen
    2. Transaktion beginnen
    3. INSERT-Command in einer Schleife 5.000.000 ausführen
    4. Transaktion beenden. (COMMIT)
    Das INSERT benötigt 31sec. Wenn ich nun versuche während der Transaktion, beispielsweise über das SQLite-Kommandozeilentool, Daten aus der Tabelle zu selektieren, erhalte ich die Meldung: "Error: database is locked".

    Kann man das Lockverhalten verändern, sodass das Lesen während DML-Operationen möglich ist?

    Datenbankversion: 3.8.9

    LG;-)
     
  2. Walter

    Walter Administrator Mitarbeiter

    Soviel ich weiss sperrt Sqlite die Datenbank während der Schreibzugriffe, das ist also normal.
    Ich empfehe die Lektüre von http://www.sqlite.org/whentouse.html - für Dauerschreiben in Verbindung mit Multiuser ist Sqlite einfach nicht gemacht.
     
  3. akretschmer

    akretschmer Datenbank-Guru

    Genau. Wenn Du das willst, wäre PostgreSQL zu empfehlen ;-)
     
  4. free.runn3r

    free.runn3r Benutzer

    Hey, vielen Dank. Ich bevorzuge SQLite, weil ich keinen Datenbank-Server betreiben will. Naja, in der "Echtanwendung" werden nicht mal 1000 Datensätze eingefügt. Das ist in ein paar Millisekunden erledigt. In der Zeit hat eben niemand etwas zu Lesen:)

    LG;-)
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden