Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
базу в ппамять и обратно
|
|||
|---|---|---|---|
|
#18+
Для ускорения работы программы часть данных хочу вытянуть в память, а при выходе из программы отправит обновлённые данные обратно. Причём баз три штуки, и пишу универсальную функцию на всех. Запросом Код: sql 1. 2. успешно получаю список таблиц в базе. Дальше создаю базу Код: sql 1. строю запрос по шаблону Код: sql 1. 2. 3. 4. 5. Где вместо "%s" подставляю нужные строки (путь к базе на диске и имена таблиц) Обратная процедура в том же духе. И всё прекрасно работает, кроме одной мелочи. Все PK и связи между таблицами пропадают. Есть ли способ скопировать не только данные, но и всю структуру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2017, 23:17 |
|
||
|
базу в ппамять и обратно
|
|||
|---|---|---|---|
|
#18+
Во первых, не путай базу и таблицу. Ты уже не в FoxPro... Во вторых, то что ты хочешь - нафиг не нужно. Читаешь некий объем из одной или нескольких таблиц и наполняешь прочитанным объекты (экземпляры классов в С++ и Java терминологии). Эти объекты у тебя лежат в памяти, в массиве или списке и ты с ними удобно работаешь. А когда нужно, формируешь insert/update/delete команды и отправляешь их напрямую в базу. Да и бессмысленно копировать данные в :memory: базу из физической. Выигрыш в производительности копеечный, но может и отрицательный получиться. Тебе ж потребуется больше памяти - ОС тебе ее даст, но начнет свапить. А это ты уже контролировать не сможешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2017, 06:41 |
|
||
|
базу в ппамять и обратно
|
|||
|---|---|---|---|
|
#18+
White Owl, я не путаю БД и таблицу, в данном случае считываю все таблицы из базы, поэтому и говорю, что базу в память. Может, надо детальнее протестировать этот момент, но разницу в производительности я замечаю даже на таблицах в несколько строк. И предполагаю, что на больших объёмах тенденция сохранится. И копировать некие объёмы не получается, точнее, эти объёмы - единичные. Регулярно надо найти в таблице строку, у которой столбец равен чему-то. и с этой строкой что-то сделать. Может, дело в отсутствии индексов, которые я не задаю при создании, или ещё что, юно дисковая база заметно медленнее базы в памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2017, 11:32 |
|
||
|
|

start [/forum/topic.php?fid=54&fpage=6&tid=2008532]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 149ms |

| 0 / 0 |
