Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Informix Новый топик    Ответить
 уменьшить фрагментацию данных  [new]
Родион Ю
Member

Откуда:
Сообщений: 9
IDS 9.21
Есть ли возможность, не используя import-export, уменьшить фрагментацию данных, возникшую после удаления большой порции данных из таблицы.
Нужно это для уменьшения размера бэкапа базы - иначе просто места не хватает.
Сделать это желательно в online.
Спасибо
7 сен 04, 11:00    [938888]     Ответить | Цитировать Сообщить модератору
 Re: уменьшить фрагментацию данных  [new]
onstat-
Member

Откуда:
Сообщений: 6941
Родион Ю
IDS 9.21
Есть ли возможность, не используя import-export, уменьшить фрагментацию данных, возникшую после удаления большой порции данных из таблицы.
Нужно это для уменьшения размера бэкапа базы - иначе просто места не хватает.
Сделать это желательно в online.
Спасибо


alter fragment on table <tabname> [init in | fragment by ...... ] <dbspace>

Места обязателно должно быть достаночно на вторую копию оставшихся данных.
Если остаток большой, журналирование на время операции лучше отключить.
В online не получится, таблица будет заблокирована в любом случае.
И обязательно update statistics for table после всего.

с уважением
7 сен 04, 11:41    [939066]     Ответить | Цитировать Сообщить модератору
 Re: уменьшить фрагментацию данных  [new]
onstat-
Member

Откуда:
Сообщений: 6941
Намудриил я немного с

onstat

alter fragment on table <tabname> [init in | fragment by ...... ] <dbspace>


с уважением


Так кажись красивее.
alter fragment on table <tabname> init [in <dbspace> | fragment by <expression> ]

в любом случае нужно почитать о alter fragment в руководстве по SQL.

с уважением
7 сен 04, 11:53    [939120]     Ответить | Цитировать Сообщить модератору
 Re: уменьшить фрагментацию данных  [new]
Журавлев Денис
Member

Откуда: St.John,NB,CA
Сообщений: 5532
Родион Ю
IDS 9.21
Есть ли возможность, не используя import-export, уменьшить фрагментацию данных, возникшую после удаления большой порции данных из таблицы.
Нужно это для уменьшения размера бэкапа базы - иначе просто места не хватает.
Сделать это желательно в online.
Спасибо


Кстати а какие проблемы с фрагментацией? Руки чешутся?

я иногда делаю так:
создаю таблицу в новом спейсе с такой же структурой как у той которую
необходимо перенести
CREATE TABLE newtable(); -- указав необходимый extent size
ALTER TABLE newtable TYPE (RAW);
insert into newtable select * from oldtable;
ALTER TABLE newtable TYPE (STANDARD);
drop table oldtable;
rename table newtable to oldtable;
создаю снова индексы, констренты, права, вью.
7 сен 04, 12:15    [939244]     Ответить | Цитировать Сообщить модератору
Все форумы / Informix Ответить