Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
14-19871
madcap
2003-03-20 22:44
2003.04.07
Дискета к книге


8-19711
deep-forest
2003-01-04 00:12
2003.04.07
Сравнение двух изображений


1-19618
jen_bond
2003-03-25 12:22
2003.04.07
Отображение при наведение мыши


4-19932
Radimir
2003-02-07 13:27
2003.04.07
Очистка памяти


14-19774
npAKTuk
2002-12-25 12:03
2003.04.07
Хочу изучить OpenGL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский