Форум: "Базы";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
ВнизIBase Найти похожие ветки
← →
dmi-vancev (2003-03-16 01:19) [0]Мастера нужен совет!
Размер базы данных постоянно увеличивается!!!
Программа следит за всеми записями и периодически удаляет
самые старые, таким образом в БД храняться данные только
за определённый диапазон времени + удалённые(помечанные записи).
На сегодняшний момент Администратору БД периодически
приходиться делать SWEEP-BUCKUP-RESTORE - ну очень долго, а главное неудобно, так клиетнские программы постоянно-непрерывно
работают с БД и их приходится принудительно отключать.
Мастера, может есть трюк? или IBASE :( или ...
← →
Alexandr (2003-03-16 08:25) [1]достаточно только sweep делать.
Тогда старые ненужные версии записей будут очищаться и место из-под них будет отдаваться новым записям.
Объем застабилизируется.
Или у вас винт маленький? Тогда это клиника.
← →
y-soft (2003-03-16 08:38) [2]Чем меньше размер страницы, тем медленнее растет объем. Но и скорость работы уменьшается
← →
y-soft (2003-03-16 08:42) [3]Backup/Restore все же делать периодически надо, хотя бы для того, чтобы иметь резервные копии базы
← →
Alexandr (2003-03-16 08:56) [4]для резервных копий базы достаточно backup
← →
y-soft (2003-03-16 08:59) [5]Restore позволяет избавиться от мусора и автоматически исправляет некоторые ошибки
← →
y-soft (2003-03-16 09:01) [6]Кроме того во всех руководствах настоятельно рекомендуется делать контрольный Restore после Backup
← →
y-soft (2003-03-16 09:04) [7]>>Restore позволяет избавиться от мусора и автоматически >>исправляет некоторые ошибки
Следует читать:
Backup/Restore позволяет избавиться от мусора и автоматически исправляет некоторые ошибки
← →
Alexandr (2003-03-16 09:07) [8]кто бы спорил....
← →
dmi-vancev (2003-03-16 16:53) [9]SWEEP - это замечательно, но на мой взгляд он проблеммы не снимает:
1. SWEEP - занимает продолжительное время и ресурсы у сервера,что ОЧЕНЬ замедляет работу клиентских приложений, что в нашем случае непреемлемо;
2. Где гарантии того, что база не будет расти пусть и медлеенно, даже при периодических SWEEP? т.е. без BUCKUP-RESTORE не обойтись ?:(
← →
Alexandr (2003-03-17 06:12) [10]
> SWEEP - это замечательно, но на мой взгляд он проблеммы
> не снимает:
> 1. SWEEP - занимает продолжительное время и ресурсы у сервера,что
> ОЧЕНЬ замедляет работу клиентских приложений, что в нашем
> случае непреемлемо;
юзай yaffil, выдели время специальное для sweep
> 2. Где гарантии того, что база не будет расти пусть и медлеенно,
> даже при периодических SWEEP? т.е. без BUCKUP-RESTORE не
> обойтись ?:(
:) а с храна-ли она расти будет, если количество данных не меняется. Вообще и sweep делать необязятельно - при выборках он сам худо-бедно делаться будет....
А вообще все зависил от порядка, в том числе и в головах...
← →
dmi-vancev (2003-03-18 01:01) [11]Привет, Alexandr :)
Был бы порядок, я бы тебя не звал !
Реально прирост БД состовляет 15 Мб в сутки.
Система удаляет "старые" записи и добавляет новые.
Выборка данных происходит не реже записи данных.
Настройки сервера - SWEEP на 20000.
Добавление данных: INSERT или UPDATE.
Теперь смотри :))) удалили 100 записей, а изменили (UPDATE) - 1000, количество данных меньше а,вот объёмчик вырос!!!.
Или Вот:
1. DATA.GDB ->33 898 496 байт
2. SWEEP DATA.GDB ->33 898 496 байт
3. DELETE FROM DATA WHERE DATA_DATE<"01.02.2003"->47 443 968 байт
о как подросли!
4. BACKUP-RESTORE-> 34 844 672 !:O (тоже фокус)
5. RESTORE-> 33 894 496 :), вот теперь вроде порядок.
Буду рад, если поможешь!
← →
Rad (2003-03-18 05:19) [12]См http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1047932551&n=1
← →
Alexandr (2003-03-18 07:27) [13]
> Привет, Alexandr :)
> Был бы порядок, я бы тебя не звал !
> Реально прирост БД состовляет 15 Мб в сутки.
это реально в нынешней ситуации. Увы.
> Система удаляет "старые" записи и добавляет новые.
это хорошо, что работает.
> Настройки сервера - SWEEP на 20000.
а вот это лучше отключить в 0 от греха подальше.
> Добавление данных: INSERT или UPDATE.
логично. А как же по-другому
> Теперь смотри :))) удалили 100 записей, а изменили (UPDATE)
> - 1000, количество данных меньше а,вот объёмчик вырос!!!.
сервер не удаляет и не обновляет - он создает НОВЫЕ ВЕРСИИ записей, поэтому объем растет. Но если эти версии окажется никому не нужными (т.е. нет заинтересованных в них транзакций), то при сборке мусора (хоть теневой - при последущем select или backUp с выключенным "disable garbage collection"), хоть явной - при sweep) место, занятое старыми версиями записей пометится как свободное и будет использовано в будущем под новые версии записей.
Обращаю внимание - размер файла не уменьшится, но в файле появятся пустые места, в которые будут писаться новые записи.
> 1. DATA.GDB ->33 898 496 байт
> 2. SWEEP DATA.GDB ->33 898 496 байт
естественно. Размер файла никогда не уменьшается. (backup - restore не рассматриваем, т.к. это пересоздание БД)
> 3. DELETE FROM DATA WHERE DATA_DATE<"01.02.2003"->47 443
> 968 байт
> о как подросли!
конечно. Версий записей стало больше их же надо куда-то писать.
И как только все заитересованные в старых версиях записей (которые были запущены ранее delete и не были завершены) закончатся, так первый же селект пометит эти версии как ненужные и место станет свободным, для последующего занятия новыми значениями.
> 4. BACKUP-RESTORE-> 34 844 672 !:O (тоже фокус)
> 5. RESTORE-> 33 894 496 :), вот теперь вроде порядок.
после backup\resore старых версий записей нет, естественно. База становится девственно чистой.
Накдеюсь, понятно объяснил.
тебе еще поможет
www.ibase.ru
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c