|
блокировка базы при большом количестве записей в таблице
|
|||
---|---|---|---|
#18+
в SQLite я пока новичок. Есть виндовый сервис, который пишет лог в базу SQLite и виндовый вьювер этого лога. Вьювер по таймауту переоткрывает датасет с логом. Пока записей в логе немного, сервис работает нормально, инсерт в лог проходит на ура. Как только становится больше 50-60 записей, сервис начинает ругаться - ERROR: database is locked. И не работает, пока не перезапущу без вьювера, или не почищу лог. Для работы с SQLite пользую компоненты AnyDac. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2012, 14:56 |
|
блокировка базы при большом количестве записей в таблице
|
|||
---|---|---|---|
#18+
обнаружил, что если снять обновление по таймауту, то все работает нормально. Т.е. получается что на момент запроса (select) база тоже блокируется? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2012, 15:36 |
|
блокировка базы при большом количестве записей в таблице
|
|||
---|---|---|---|
#18+
Игорь Чобнаружил, что если снять обновление по таймауту, то все работает нормально. Т.е. получается что на момент запроса (select) база тоже блокируется? Зависит от режима открытия БД. Если использовать режим WAL, то не блокируется. Попробуйте открыть вашу БД в sqlite3 шелле и указать "PRAGMA journal_mode=WAL;PRAGMA synchronous = NORMAL;" - эти настройки сохраняются, так что после этого все клиенты будут в указанном режиме открывать БД (если только они в явном виде не определяют собственные настройки). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2012, 16:02 |
|
|
start [/forum/topic.php?fid=54&tid=2008948]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 275ms |
total: | 438ms |
0 / 0 |