Выше - это я
Этот топик читают: Гость
Ответов: 1891
Рейтинг: 110
|
|||
карма: 0 |
|
Разработчик
Ответов: 26100
Рейтинг: 2124
|
|||
Увы, Alexbootch, версия 3.7.2 показала отвратительные результаты по мультидоступу к базе на чтение, вплоть, до катастрофического зависания основного
Тестировалось одно приложение на регулярную запись и до трех приложений на чтение этой базы. Результаты отвратительные, пришлось откатить на 3.4.2, которая работает прекрасно в таком режиме уже больше двух лет ничего не меня в запросах |
|||
карма: 22 |
|
Ответов: 1891
Рейтинг: 110
|
|||
nesco писал(а): Увы, Alexbootch, версия 3.7.2 показала отвратительные результаты по мультидоступу к базе на чтение, вплоть, до катастрофического зависания основногоТестировалось одно приложение на регулярную запись и до трех приложений на чтение этой базы. Результаты отвратительные, пришлось откатить на 3.4.2, которая работает прекрасно в таком режиме уже больше двух лет ничего не меня в запросах nesco, так и будет с мультидоступом, т.к. компилировалось с ключом -DSQLITE_THREADSAFE=1, а для многопоточности надо компилировать с ключем -DSQLITE_THREADSAFE=2 |
|||
карма: 0 |
| ||
Голосовали: | Konst |
Разработчик
Ответов: 26100
Рейтинг: 2124
|
|||
Alexbootch, а можно скромно
![]() |
|||
карма: 22 |
|
Ответов: 1891
Рейтинг: 110
|
|||
nesco, писал(а): Alexbootch, а можно скромно ![]() nesco, чето ты все скромничаешь ![]() ------------ Дoбавленo в 11.39: nesco, посмотри еще здесь, т.к. может еще что нужно подкрутить |
|||
карма: 0 |
|
Разработчик
Ответов: 26100
Рейтинг: 2124
|
|||
Ну, там я нашел --
SQLITE_CONFIG_MULTITHREAD и SQLITE_THREADSAFE=2 для установки мультипотокового доступа SQLITE_TEMP_STORE=3 всегда использовать память для временных результатов SQLITE_ENABLE_MEMORY_MANAGEMENT |
|||
карма: 22 |
|
Ответов: 1891
Рейтинг: 110
|
|||
nesco писал(а): Ну, там я нашел --SQLITE_CONFIG_MULTITHREAD и SQLITE_THREADSAFE=2 для установки мультипотокового доступа SQLITE_TEMP_STORE=3 всегда использовать память для временных результатов SQLITE_ENABLE_MEMORY_MANAGEMENT nesco, вот держи |
|||
карма: 0 |
| ||
файлы: 1 | optimal_sqlite3obj(1).rar [203KB] [329] | ||
Голосовали: | nesco |
Разработчик
Ответов: 26100
Рейтинг: 2124
|
|||
Alexbootch писал(а): вот держиСпасибо, на работе попробую, дома нет реальной потоковой базы |
|||
карма: 22 |
|
Ответов: 1891
Рейтинг: 110
|
|||
nesco, как попробуешь - отпишись.
|
|||
карма: 0 |
|
Разработчик
Ответов: 26100
Рейтинг: 2124
|
|||
Alexbootch писал(а): как попробуешь - отпишисьГы, отпишусь, если не подвесят меня за фаберже за такие эксперименты ![]() |
|||
карма: 22 |
|
Ответов: 1891
Рейтинг: 110
|
|||
nesco, еще вопрос: сами базы через какую версию sqlite создавались?
|
|||
карма: 0 |
|
Разработчик
Ответов: 26100
Рейтинг: 2124
|
|||
Alexbootch писал(а): сами базы через какую версию sqlite создавались?Потоковая база создается каждый день в 00 часов, значит, в 00 часов будет создана в новой версии. Одна из баз данных поддержки создана в версии 3.4.2, вторая изменена в новой версии. |
|||
карма: 22 |
|
Ответов: 1891
Рейтинг: 110
|
|||
nesco писал(а): Потоковая база создается каждый день в 00 часов, значит, в 00 часов будет создана в новой версии. Одна из баз данных поддержки создана в версии 3.4.2, вторая изменена в новой версии.Понятно, просто при компиляции с ключом SQLITE_DEFAULT_FILE_FORMAT=4 при при работе с базой, созданной в файловом формате = 4 нужна версия sqlite не ниже 3.6.0 ![]() SQLITE_DEFAULT_FILE_FORMAT=<1 or 4> The default schema-level file format used by SQLite when creating new database files is set by this macro. The file formats are all very similar. The difference between formats 1 and 4 is that format 4 understands descending indices and has a tighter encoding for boolean values. SQLite (as of version 3.6.0) can read and write any file format between 1 and 4. But older versions of SQLite might not be able to read formats greater than 1. So that older versions of SQLite will be able to read and write database files created by newer versions of SQLite, the default file format is set to 1 for maximum compatibility. The file format for a new database can be set at runtime using the PRAGMA legacy_file_format command. |
|||
карма: 0 |
|
Разработчик
Ответов: 26100
Рейтинг: 2124
|
|||
Проблема не в разных версих, а в мультипотоковом доступе. Запись ведется исправно, ничего никуда не пропадает. Кстати, проблема с мультипотоковым чтением я наблюдал и в самом HiAsm-e, в открытой на чтение базе hiasm.db, я ничего не смог изменить (естественно, использовалась новая версия), пришлось откатывать на старую версию
|
|||
карма: 22 |
|
Ответов: 1891
Рейтинг: 110
|
|||
nesco, чето ты о результатах не отписываешься? Не тестил еще или все-таки подвесили за фаберже ?
![]() |
|||
карма: 0 |
|