I have a script that I use in crontab to check 26 databases. Normally this takes about 20 seconds. One particular database takes the most time: about ten seconds. A few nights ago this database took almost two hours to be checked. The other databases needed the usual time. The nights after this everything was back to normal. I check the following pragmas: INTEGRITY_CHECK FOREIGN_KEY_CHECK JOURNAL_MODE And I use the following tcl proc to check if the database is locked (it was not): proc checkLocked {database} { if {[catch {db eval "BEGIN IMMEDIATE"} SQLError]} { if {${SQLError} ne "database is locked"} { error "UNEXPECTED ERROR: ${SQLError}" } puts "The database ${database} is locked." } else { db eval "ROLLBACK" } } What could be the reason of this? Is it to worry about?