|
Фоновое сжатие БД
|
|||
---|---|---|---|
#18+
Всем привет. Общепринято считать что сжать можно, которую не открыли другие пользователи. Не совсем так. Вот проверенный рабочий алгоритм: Считаем что некие таблицы бд открыты др. пользователями 1. устанавливаем признак запрета внесения изменений бд 2. желательно (но не обязательно - придется как-то что-то обрабатывать в зависимости от конкретной формы) закрыть все формы 3. копируем бд средствами FSO в др.каталог (функция FileCopy этот сделать не позволит) 4. сжимаем скопированную бд (средства в форуме приводились) 5. возвращаем бд в родной каталог опять таки средствами FSO . 6. снимаем признак запрета внесения изменений бд Все работает. Но оказалось, что надо выполнить переподключение таблиц сжатой бд. Без переподключения наблюдаются тормоза. Да, еще - перед началом проверяется, что кто-то выполняет операции не позволяющие осуществит сжатие в тек. момент. Тут возникает доп задача - заставить переподключить бд у активных пользователей. Кроме того, когда-то писано: Владимир Саныч Должно быть две базы: в одной находимся, другую сжимаем. Кстати, если система разделена на программу и данные, то так и получается: находимся в базе с программой, сжимаем базу с данными. Не совсем так. базу в которой я работаю я могу также скопировать, используя FSO (CopyFile ), в другой каталог, сжать и вернуть на родное место, опять таки используя FSO (CopyFile ). Чем это чревато - не знаю не проверял. Но то, что отрытую на пк базу можно программно подменить факт. К чему это приведет - вопрос открытый. то что это может быть долго - понятно. Но зато не надо выгонять пользователей. Критикуйте, по существу. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2019, 05:48 |
|
Фоновое сжатие БД
|
|||
---|---|---|---|
#18+
MikeLed, 1. подменить базу нельзя, если она зашифрована и пароль неизвестен. 2. можно в базе с таблицами держать счетчик, как только он будет скажем x mod 100=0 - на первой открывающейся базе с интерфейсом открываем её монопольно, (архивируем), сжимаем, открываем в обычном режиме. (либо сделать запрет с требованием открыть с правами админа) то что Вы предлагаете - "горячее сжатие базы" - может быть чревато. и думаю не стоит этого делать даже в учебных целях. при этом такой метод в однопользовательском режиме очень даже ничего - проверено, работает правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2019, 14:21 |
|
Фоновое сжатие БД
|
|||
---|---|---|---|
#18+
MikeLed , Все эти манипуляции на работающих открытых базах, как правило, приводят к плачевным результатам. Очень большой риск что-либо потерять. Сжимать только в нерабочее время, - зачем вам на задницу лишние приключения? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 09:40 |
|
|
start [/forum/topic.php?fid=45&msg=39910195&tid=1610304]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 156ms |
0 / 0 |