Можно ли упаковать базу после DROP TABLE?
Добавлено: 18 май 2005, 19:26
Мы совсем недавно решили перейти (с Парадокса!) на FB 1.5 (embedded), поэтому я многое истчо не знаю, прошу не пинать
Программа, использующая FB, периодически получает по tcp xml-таблицы, которые ей необходимо переконвертировать в соответствующие таблицы базы. При этом может измениться и структура таблицы, или таблица вообще удалиться за ненадобностью. Решение выглядит простым - сначала DROP TABLE, а затем CREATE TABLE. Но возникают два вопроса:
1. Где-то я слышал, что после DROP TABLE размеры DB не уменьшаются, поэтому интенсивное использование такого механизма приведет к усиленному росту файла базы. Можно ли как-то по завершении DROP TABLE - CREATE TABLE программным путем ужать базу, чтобы она освободила пространство удаленной таблицы?
2. И нужно ли индивидуально вызывать дроп для индексов и первичных ключей, или они сами удалятся вместе с таблицей?
Просто не хочется зарабатывать гемморой сверкой по полям каждой таблицы на предмет отличия и вызовами ALTER TABLE, вот и пытаюсь найти более простой вариант.

Программа, использующая FB, периодически получает по tcp xml-таблицы, которые ей необходимо переконвертировать в соответствующие таблицы базы. При этом может измениться и структура таблицы, или таблица вообще удалиться за ненадобностью. Решение выглядит простым - сначала DROP TABLE, а затем CREATE TABLE. Но возникают два вопроса:
1. Где-то я слышал, что после DROP TABLE размеры DB не уменьшаются, поэтому интенсивное использование такого механизма приведет к усиленному росту файла базы. Можно ли как-то по завершении DROP TABLE - CREATE TABLE программным путем ужать базу, чтобы она освободила пространство удаленной таблицы?
2. И нужно ли индивидуально вызывать дроп для индексов и первичных ключей, или они сами удалятся вместе с таблицей?
Просто не хочется зарабатывать гемморой сверкой по полям каждой таблицы на предмет отличия и вызовами ALTER TABLE, вот и пытаюсь найти более простой вариант.