Поиск причины роста размера файла БД

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
golkanavt
Сообщения: 82
Зарегистрирован: 10 янв 2006, 13:57

Поиск причины роста размера файла БД

Сообщение golkanavt » 10 янв 2006, 14:43

В последнее время файл БД (FB 1.03) начал стремительно рости (на данный момент - 830 Мб)- порядка 2-3 Мб/сутки. Характеру приложения это не соответствует, ибо особого увеличения объема вносимых данных не произошло. Анализ статистики базы и ее таблиц показывает что суммарный размер таблиц не дотягивает и до половины размера файла. В чем может быть причина, почему файл растет так быстро, на что тратится дисковое пространство?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 10 янв 2006, 14:56

2-3 мб в сутки - это мало. Достаточно обновить или удалить записи в какой-нибудь большой таблице в базе чтобы размер базы увеличился больше чем на 2-3мб.
Если сильно интересно, надо взять статистику 2 раза (вчера и сегодня, завтра..), gstat -a -r db.gdb (или IBAnalyst-ом), и сравнить ее в двух экземплярах IBAnalyst или windiff-ом.

golkanavt
Сообщения: 82
Зарегистрирован: 10 янв 2006, 13:57

Сообщение golkanavt » 10 янв 2006, 15:12

2 kdv
2-3 мб в сутки - это мало.
может это и считается "мало" но раньше такого роста не было, за последние пару месяцев база выросла больше чем за 2 последних года, вот я о чем. попробую повозиться со статистикой

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: Поиск причины роста размера файла БД

Сообщение hvlad » 10 янв 2006, 15:58

golkanavt писал(а):В последнее время файл БД (FB 1.03) начал стремительно рости (на данный момент - 830 Мб)- порядка 2-3 Мб/сутки. Характеру приложения это не соответствует, ибо особого увеличения объема вносимых данных не произошло. Анализ статистики базы и ее таблиц показывает что суммарный размер таблиц не дотягивает и до половины размера файла. В чем может быть причина, почему файл растет так быстро, на что тратится дисковое пространство?
gstat -h покажи

golkanavt
Сообщения: 82
Зарегистрирован: 10 янв 2006, 13:57

Сообщение golkanavt » 10 янв 2006, 18:02

Database header page information:
Flags 0
Checksum 12345
Generation 325884
Page size 4096
ODS version 10.0
Oldest transaction 303233
Oldest active 323803
Oldest snapshot 323229
Next transaction 325864
Bumped transaction 1
Sequence number 0
Next attachment ID 0
Implementation ID 16
Shadow count 0
Page buffers 0
Next header page 0
Database dialect 3
Creation date Nov 9, 2005 0:49:48
Attributes force write, no reserve

Variable header data:
Sweep interval: 20000
*END*

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 10 янв 2006, 23:23

Attributes force write, no reserve
no reserve зачем включил?

andreik
Сообщения: 9
Зарегистрирован: 11 дек 2005, 15:49

Сообщение andreik » 12 янв 2006, 13:14

îáðàòèòå âíèìàíèå, ÷òî ðàçìåð áàçû áóäåò óâåëè÷èâàòüñÿ, äàæå åñëè âû íå äîáàâëÿåòå äàííûå, à ïðîñòî äåëàåòå UPDATE çàïèñÿì. Äëÿ íà÷àëà, ïîïðîáóéòå åæåäíåâíî äåëàòü àðõèâèðîâàíèå ñ âêëþ÷åííîé ñáîðêîé ìóñîðà. åñëè ïîñëå ýòîãî ðîñò ïðåêðàòèòñÿ, çíà÷èò ó âàñ ãäå-òî èäóò ìàññîâûå àïäåéòû, êîòîðûå ñîçäàþò ìíîãî âåðñèé çàïèñè. åñëè ðîñò íå ïðåêðàòèòñÿ, òî çíà÷èò ó âàñ ðåàëüíî äîáàâëÿåòñÿ ñòîëüêî äàííûõ â áàçó.

golkanavt
Сообщения: 82
Зарегистрирован: 10 янв 2006, 13:57

Сообщение golkanavt » 12 янв 2006, 14:52

no reserve зачем включил?
эээ... не включал, я не знаю что это за опция
попробуйте ежедневно делать архивирование с включенной сборкой мусора
ежеутренний бэкап именно так и работает, рост есть. ладно, допустим это новые данные... странно все это

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 12 янв 2006, 15:41

эээ... не включал, я не знаю что это за опция
"я винт не форматировал, но почему то все стерлось", так?

Эта опция выставляется ТОЛЬКО ЯВНО, и никак не по умолчанию. Либо у тебя уже база была изначально откуда то с этой опцией, либо ты ее сам включил, и не помнишь где и когда.

golkanavt
Сообщения: 82
Зарегистрирован: 10 янв 2006, 13:57

Сообщение golkanavt » 12 янв 2006, 16:31

Либо у тебя уже база была изначально откуда то с этой опцией, либо ты ее сам включил, и не помнишь где и когда.
Может быть и так, базе уже больше 3 лет, мог что то и забыть в ее развитии. А за что эта опция отвечает?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 12 янв 2006, 16:38

то есть, в доку глядеть не хочется? :)

no_reserve - это не резервировать место под версии на страницах данных, то есть заполнять страницы целиком. В результате апдейты могут повлечь за собой выделение новых страниц. Имеет смысл для редко обновляемых БД, или для баз на read-only носителях.

Ответить