powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Как работать с in-memory базой?
8 сообщений из 8, страница 1 из 1
Как работать с in-memory базой?
    #37860272
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как сделать такое:

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

Как средствами .NET+SQLite реализовать это процесс - база на диске->база в памяти ?
...
Рейтинг: 0 / 0
Как работать с in-memory базой?
    #37861502
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.sqlite.org/backup.html

Как это подерживается в .Net - наверное зависит от провайдера. Точнее - я не в курсе ...
...
Рейтинг: 0 / 0
Как работать с in-memory базой?
    #37863511
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
WinnipuhКак сделать такое:

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

Как средствами .NET+SQLite реализовать это процесс - база на диске->база в памяти ?

Создать БД в ОЗУ можно так:
Код: sql
1.
attach database ':memory:' as memory;



Далее можно скопировать содержимое БД командой restore, если она поддерживается в вашем враппере, или все таблицы с их содержимым так:

Код: sql
1.
create table memory.t1 as select * from t1;



где t1 - имя вашей таблицы.

Если вам нужна как основная именно база в ОЗУ, тогда открываете сразу ее (используйте :memory: в качестве имени файла), подключаете дисковую базу, копируете нужные таблицы и отключаете дисковую базу:

Код: sql
1.
2.
3.
attach database 'test.db' as orig;
create table t1 as select * from orig.t1;
detach orig;
...
Рейтинг: 0 / 0
Как работать с in-memory базой?
    #37863673
RXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В API есть такая фича как online backup. Бекап выполняется из одной базы в другую. В том числе из памяти в файл и наоборот.
Using the SQLite Online Backup API
...
Рейтинг: 0 / 0
Как работать с in-memory базой?
    #37863676
RXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, до меня уже сказали...
...
Рейтинг: 0 / 0
Как работать с in-memory базой?
    #37863681
RXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://sqlite.phxsoftware.com/forums/t/2403.aspx
Неофициальный патч для System.Data.SQLite.
...
Рейтинг: 0 / 0
Как работать с in-memory базой?
    #37864544
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о онлайн бекап наверное то что надо.
Это в простом случае, когда сервис на старте засасывает базу в память и использует ее только на чтение.

Есть ли путь для решения более сложной задачи - если все-таки работать с базой в памяти
еще и на изменение, то как синхронизовать ее с основной базой на диске?
...
Рейтинг: 0 / 0
Как работать с in-memory базой?
    #37864820
RXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh,

Тогда использовать базу на диске и задать кеш достаточного размера. Размер страниц рекомендуется 4 или 8 кБ.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Как работать с in-memory базой?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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