PRAGMA temp_store_directory в вопросе SQLite - PullRequest
0 голосов
/ 03 мая 2020

У меня есть java приложение с 10 потоками, каждый поток работает на разных БД (каждый поток на один дБ). Когда я создаю соединение с БД, я передаю ей PRAGMA temp_store_directory с папкой, в которой находится db, поэтому там будет помещен временный файл. Недавно прочитав эту PRAGMA, я обнаружил:

При изменении параметра temp_store_directory все существующие временные таблицы, индексы, триггеры и средства просмотра в соединении с базой данных, которые создали прагму, немедленно удаляются. На практике temp_store_directory следует устанавливать сразу после открытия первого соединения с базой данных для процесса. Если каталог temp_store_directory изменен для одного соединения с базой данных, в то время как другие соединения с базой данных открыты в том же процессе, то поведение не определено и, вероятно, нежелательно.

Но я не совсем понимаю, если это соединение с та же БД или какое-либо соединение внутри одного и того же процесса будет разорвано? Также обнаружено, что

Изменение параметра temp_store_directory не является потокобезопасным. Никогда не меняйте настройку temp_store_directory, если другой поток в приложении одновременно запускает какой-либо интерфейс SQLite. Это приводит к неопределенному поведению. Изменение параметра temp_store_directory записывает в глобальную переменную sqlite3_temp_directory, и эта глобальная переменная не защищена мьютексом.

Итак, здесь это сбивает с толку еще больше. И последнее, что устарело в SQLite

Эта прагма устарела и существует только для обратной совместимости. Новые приложения должны избегать использования этой прагмы. Старые приложения должны прекратить использование этой прагмы при первой же возможности.

Итак, не уверен, как работать, если это устарело, так как у меня есть 10 подключений к 10 различным БД и как мне установить временную папку для каждое соединение отдельно?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...