Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / SQLite многопоточный доступ к базе в памяти (через FireDAC) / 25 сообщений из 63, страница 1 из 3
11.03.2021, 13:55
    #40052586
_avz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
По правилу, на каждый поток надо открывать отдельное соединение (FDConnection)
Но при подключении к базе в памяти (FDConnection.Open без параметров) каждое соединение
получает доступ к отдельной базе в памяти, а не к одной общей.
Существует ли способ подключиться в новом FDConnection к базе в памяти, которую создал другой коннекшн?
...
Рейтинг: 0 / 0
11.03.2021, 14:34
    #40052606
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
_avz,

вроде бы в новых SQLite такое можно, нужно включить режим общего кэша: https://sqlite.org/inmemorydb.html
Но в SQLite один фиг доступ в лучшем случае поочередный, пока запрос к базе не завершится, другие треды при попытке обращения к базе будут ждать.
...
Рейтинг: 0 / 0
11.03.2021, 14:49
    #40052611
_avz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
ъъъъъ,
1)по ссылкеIn-memory databases are allowed to use shared cache if they are opened using a URI filename. If the unadorned ":memory:" name is used to specify the in-memory database, then that database always has a private cache and is this only visible to the database connection that originally opened it. However, the same in-memory database can be opened by two or more database connections as follows:

rc = sqlite3_open("file::memory:?cache=shared", &db);

Or,

ATTACH DATABASE 'file::memory:?cache=shared' AS aux1;

This allows separate database connections to share the same in-memory database.

А как открывать БД в FireDAC?

FDConnection.Open('file::memory:?cache=shared'), так что ли?
если тупо так, то не прокатывает

2) Мне принесёт пользу и параллельный доступ хотя бы на чтение.
...
Рейтинг: 0 / 0
11.03.2021, 14:59
    #40052615
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
_avz,

и чтения параллельного не будет.
...
Рейтинг: 0 / 0
11.03.2021, 15:04
    #40052622
_avz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
ъъъъъ
_avz,

и чтения параллельного не будет.

Это только для базы в памяти так?
Для файловой БД ведь есть параллельное чтение, если собрать dll с нужными ключами
...
Рейтинг: 0 / 0
12.03.2021, 00:34
    #40052755
энди
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
sqlite это как бы все же не многопользовательский сервер, рассматривайте его как удобный локальный однопользовательский sql движок.
...
Рейтинг: 0 / 0
12.03.2021, 10:50
    #40052821
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
Пробовал работать с локальным скллайт+файрДАК. Однопользовательский, нагрузка мизерная, записей пару сотен.
Опыт неожиданно негативный: какие-то блокировки и несохранения. База часто заламывается.
Никакие меры не помогли.
Непонятки с совместимостью. Некот. утилиты видят не то, что я нормально вижу.

Сырость несусветная. Кароч выбросил. Опыт с различными СУБД - 25лет, есличо.
...
Рейтинг: 0 / 0
12.03.2021, 11:15
    #40052831
_avz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
L_argo,

А что вместо файрдака взяли?
...
Рейтинг: 0 / 0
12.03.2021, 11:17
    #40052833
zedxxx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
L_argo
Сырость несусветная. Кароч выбросил. Опыт с различными СУБД - 25лет, есличо.

Выбросил FireDAC или SQLite?
...
Рейтинг: 0 / 0
12.03.2021, 16:30
    #40052951
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
zedxxx
L_argo
Сырость несусветная. Кароч выбросил. Опыт с различными СУБД - 25лет, есличо.
Выбросил FireDAC или SQLite?
Выбросил SQLite. На сколько смог, обошелся основной БД и ini-файлами, т.к. задача была хранить служебные данные и настройки.

Тем не менее было бы неплохо заюзать к-л локальную легковесную СУБД, которую не надо инсталить.

До SQLite перепробовал несколько подобных систем.
Везде какие-то грабли, начиная от проблем с кириллицей и датами и кончая нестабильностью и отсутствием DB-драйвера для разных версий эхотага. :)
...
Рейтинг: 0 / 0
12.03.2021, 17:17
    #40052968
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
L_argo
Выбросил SQLite. На сколько смог, обошелся основной БД и ini-файлами, т.к. задача была хранить служебные данные и настройки.

Либо компоненты глючат, либо ты не умеешь ее готовить. Весь прикладной андроид хранит настройки в sqlite и у них ничего не теряется. Коллеги успешно крутят в in-memory sqlite базах гигабайты данных и все ОК.
...
Рейтинг: 0 / 0
12.03.2021, 18:19
    #40052986
энди
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
Ну про от что есть нюансы с русским, датами и прочим, все так. Это все же не полноценный sql сервер, это посути простой движок БД с поддержкой sql.
...
Рейтинг: 0 / 0
12.03.2021, 18:38
    #40052993
zedxxx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
L_argo, Ну вообще-то, SQLite очень надёжная и живучая БД. А проблемы были скорее всего связаны с неправильным использованием https://www.sqlite.org/howtocorrupt.html
...
Рейтинг: 0 / 0
13.03.2021, 00:51
    #40053061
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
L_argo

Выбросил SQLite. На сколько смог, обошелся основной БД и ini-файлами, т.к. задача была хранить служебные данные и настройки.


Чем тебе ini не угодили для хранения служебных данных?
...
Рейтинг: 0 / 0
13.03.2021, 01:13
    #40053067
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
DarkMaster
L_argo

Выбросил SQLite. На сколько смог, обошелся основной БД и ini-файлами, т.к. задача была хранить служебные данные и настройки.


Чем тебе ini не угодили для хранения служебных данных?

Например, невозможностью параллельной модификации. Ограничением размера и типов данных, фиксированной структурой.
...
Рейтинг: 0 / 0
13.03.2021, 01:38
    #40053069
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
ъъъъъ
DarkMaster
пропущено...


Чем тебе ini не угодили для хранения служебных данных?

Например, невозможностью параллельной модификации. Ограничением размера и типов данных, фиксированной структурой.
Это для любых реляционок так, задумайся.
...
Рейтинг: 0 / 0
13.03.2021, 02:01
    #40053071
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
Siemargl,

"реляционки" легко реализуют древовидные, списки, и (например) сетевые структуры.
У "реляционок" нет [видимых] ограничений на размер.
У [правильных] "реляционок" доступна параллельная модификация и чтение из нескольких коннектов, есть транзакции, есть возможность контроля целостности данных, размещения логики в объекте хранения.
...
Рейтинг: 0 / 0
13.03.2021, 11:14
    #40053109
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
ъъъъъ
Siemargl,

"реляционки" легко реализуют древовидные, списки, и (например) сетевые структуры.
У "реляционок" нет [видимых] ограничений на размер.
У [правильных] "реляционок" доступна параллельная модификация и чтение из нескольких коннектов, есть транзакции, есть возможность контроля целостности данных, размещения логики в объекте хранения.
Так то оно так, но ini - это одна таблица.

А к ней применимы все те же ограничения после задания структуры (хотя даже меньше, можно без EAV обойтись) =)
>Например, невозможностью параллельной модификации. Ограничением размера и типов данных, фиксированной структурой.
...
Рейтинг: 0 / 0
13.03.2021, 11:52
    #40053117
Vlad F
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
L_argo
Тем не менее было бы неплохо заюзать к-л локальную легковесную СУБД, которую не надо инсталить.

До SQLite перепробовал несколько подобных систем.
Везде какие-то грабли, начиная от проблем с кириллицей и датами и кончая нестабильностью и отсутствием DB-драйвера для разных версий эхотага. :)

С FB-embedded FireDAC работает довольно хорошо, имхо.
В многопоточном режиме в т.ч.
...
Рейтинг: 0 / 0
13.03.2021, 15:47
    #40053160
didgik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
L_argo
Пробовал работать с локальным скллайт+файрДАК. Однопользовательский, нагрузка мизерная, записей пару сотен.
Опыт неожиданно негативный: какие-то блокировки и несохранения. База часто заламывается.
Никакие меры не помогли.
Непонятки с совместимостью. Некот. утилиты видят не то, что я нормально вижу.

Сырость несусветная. Кароч выбросил. Опыт с различными СУБД - 25лет, есличо.


Вот блин, а я как раз думал о том, чтоб вместо ms jet на SQLite переползти.
...
Рейтинг: 0 / 0
13.03.2021, 16:14
    #40053162
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
didgik,

переползай на Firebird.
...
Рейтинг: 0 / 0
13.03.2021, 16:25
    #40053164
didgik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
ъъъъъ
didgik,

переползай на Firebird.

Тоже была такая мысль, но пока ссыкатно. Там автоинкремента не было вроде.
...
Рейтинг: 0 / 0
13.03.2021, 16:27
    #40053165
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
ъъъъъпереползай на Firebird.

А чего ж мелочиться-то, пусть сразу ползёт к Оракулу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.03.2021, 16:40
    #40053167
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
didgik>Там автоинкремента не было вроде.

Всегда было. Раньше, когда в IBExpert галочку "автоинкремент" ставил, созавался триггер на вставку и генератор. А в новых версиях - атрибут IDENTITY,.
...
Рейтинг: 0 / 0
13.03.2021, 16:45
    #40053168
didgik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite многопоточный доступ к базе в памяти (через FireDAC)
Dimitry Sibiryakov

ъъъъъпереползай на Firebird.

А чего ж мелочиться-то, пусть сразу ползёт к Оракулу.


Бабушка с ноутом на целероне и 2 гигами опертивки с инетом через 3джи осилит администрирование?
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / SQLite многопоточный доступ к базе в памяти (через FireDAC) / 25 сообщений из 63, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]