Помогите очистить БД в IBExperte

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

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

Ответить
Platon_Elenin
Сообщения: 8
Зарегистрирован: 10 янв 2007, 11:55

Помогите очистить БД в IBExperte

Сообщение Platon_Elenin » 10 янв 2007, 12:00

помогите мне наимудрейшие!!!

в общем есть у меня база данных gdb (fdb). изначальный размер пустой таблицы - 420 kb.
Потом я забиваю в неё порядка 100 000 записей и объем становится равным 10 Mb. Так вот, затем запускаю IBExpert и делаю empty table, в итоге таблица в базе данных пустая становится. А размер остался прежним =10 Mb. Почему так и как мне быть? :(

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

Сообщение kdv » 10 янв 2007, 12:09

ответов два
1. потому что удаление, это создание версий. см
www.ibase.ru/devinfo/mga.htm и др. статьи про версионность и сборку мусора.
2. потому что просто так сервер не будет уменьшать размер файла. ему это не нужно. Пустое место будет заполнено новыми данными.
Если надо "упаковать" БД то делай backup/restore.

qvd
Сообщения: 27
Зарегистрирован: 10 янв 2007, 11:52

Сообщение qvd » 10 янв 2007, 12:11

это нормально, что размер не изменяется после удаления, что бы уменьшить размер бд сделай резервирование а потом восстановление, и мусор будет удален.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 10 янв 2007, 12:54

qvd писал(а):это нормально, что размер не изменяется после удаления
Размер базы после удаления как правило увеличится. Ты тоже перечитай статью.

Platon_Elenin
Сообщения: 8
Зарегистрирован: 10 янв 2007, 11:55

Сообщение Platon_Elenin » 11 янв 2007, 07:04

Господа у меня в таблице 25 000 000 записей. Пытаюсь сделать backup/refresh - процесс очень долгий. Можно ли как-нибудь в IbExperte сделать переброс данных из одной таблицы в другую но без мусора?

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

Сообщение kdv » 11 янв 2007, 08:46

а при чем тут мусор? надо сделать бэкап - ну и делай его без мусора. 25 миллионов-то чего - мусора, записей, или вперемешку?

по моим прикидкам 25 млн. записей - это база в среднем на 4-5 гигабайт. бэкап и рестор такой базы в сумме не должен занимать больше 40 минут даже на обычной рабочей станции.

и потом, подозрительный ты товарищ - то у тебя 100к записей, то 25 миллионов...

Platon_Elenin
Сообщения: 8
Зарегистрирован: 10 янв 2007, 11:55

Сообщение Platon_Elenin » 11 янв 2007, 10:18

Я не странный товарищ! :lol:

Короче, 100 kb - это я так для примера привел. На самом же деле есть действительно база 50 000 000 записей и весит она 7 Gb.
Эту база за 2 года. Я её разделил на два года таким образом - создал ещё одну копию и в каждой из копий удалил записи за ненужный год.
Получил 2 базы - 2005 и 2006 год.
В каждой базе по 25 000 000 записей и весят они по 7Gb/
Затем делаю backup базы 2005 года в IBExperte, вначале все вроде неплохо через каждую секунду в лог-файле бегут строчки (например 10000 records writed и т.д ). Доходит это дело до 15680000 records writed и все эксперт начинает висеть (может таким образом он мусор убирает ?). и висит . я подождал пару минут и отрубил его.
Что касательно 2006 года то там backup висит когда доходит до копирования записей (то есть в начале а не вконце).

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

Сообщение kdv » 11 янв 2007, 10:37

backup как делается? почему в IBExpert, а не через gbak?
в IBExpert при backup галка Garbage collection включена? если да, то почему?

Platon_Elenin
Сообщения: 8
Зарегистрирован: 10 янв 2007, 11:55

Сообщение Platon_Elenin » 11 янв 2007, 10:44

kdv писал(а):backup как делается? почему в IBExpert, а не через gbak?
А что такое gbak, простите за тупой вопрос. я не давно работаю. если это программа то где её взять?
kdv писал(а):в IBExpert при backup галка Garbage collection включена? если да, то почему?
Да конечно галочка стоит. А что она означает, я думал Garbage collection - это сборка мусора и его удаление.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 11 янв 2007, 10:47

Вы вообще-то документацию читали? OpGude, например...

Garbage Collection это действительно сборка мусора. Но если вы собираетесь бэкап тут же восстанавливать, зачем собирать мусор в оригинальной базе? Или вы как прочие... глупые люди, не читающие документацию думаете, что без этой галочки мусор попадет в бэкап?..

Platon_Elenin
Сообщения: 8
Зарегистрирован: 10 янв 2007, 11:55

Сообщение Platon_Elenin » 11 янв 2007, 11:16

Dimitry Sibiryakov писал(а):Вы вообще-то документацию читали? OpGude, например...
А где её найти OpGude, ссылучку не подскажите

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

Сообщение kdv » 11 янв 2007, 11:54

А что такое gbak, простите за тупой вопрос. я не давно работаю. если это программа то где её взять?
мда. вот что значит, когда человек не то что документацию не читал, а еще и не смотрел что там сервер на диск поставил.
Да еще 7-гиговыми базами данных оперирует, причем уже не меньше года.
Да конечно галочка стоит. А что она означает, я думал Garbage collection - это сборка мусора и его удаление.
вообще-то, перед тем как здесь задавать вопросы, нужно читать статьи на ibase.ru.
Garbage collection - это и есть сборка мусора при бэкапе. Только объясните мне, зачем Вам это надо при бэкапе?
А где её найти OpGude, ссылучку не подскажите
еще один такой вопрос, и я заблокирую Ваш account на форуме.

Ответить