Гость
Map
Форумы / Informix [игнор отключен] [закрыт для гостей] / Сжатие таблици / 21 сообщений из 21, страница 1 из 1
26.07.2011, 14:48
    #37367438
SINDEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
Доброе время суток!
С Informix только только начинаю работь, от старого работника осталась база в ней таблица с логами за 5 лет. Таблица разрослась до 22Гб. Посоветуйте как я могу уменьшить размер таблици. Пробовал удолять записи в таблици, но размер не изменяется.
Что посоветуюте как можно уменьшить таблицую
Зарание спасибо.
ОС: HP UX
Версия БД: IBM Informix Dynamic Server Version 9.40.FC7
...
Рейтинг: 0 / 0
26.07.2011, 15:15
    #37367499
Ikir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
SINDEX,

Таблица фрагментирована? Если нет, то стоит подумать над этим.
Посмотрите описание оператора TRUNCATE.
И конечно не забудьте выгрузить нужные данные!!!
...
Рейтинг: 0 / 0
26.07.2011, 15:39
    #37367575
SINDEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
Ikir,

Нет не фрагментированая можно по подробней об этом или ссылочку где почитать?
В моей версии TRUNCATE не поддерживается уже пробовал.
"This feature was not available in the early versions of IBM Informix® Dynamic Server™ even though it was included in the documentation. This feature is first available in 10.00.xC4."
...
Рейтинг: 0 / 0
26.07.2011, 17:03
    #37367797
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
SINDEXДоброе время суток!
Посоветуйте как я могу уменьшить размер таблици. Пробовал удолять записи в таблици, но размер не изменяется.
Что посоветуете ? как можно уменьшить таблицу ?

Если все эти записи в логе вам сейчас уже не нужны, то можно просто удалить всю таблицу и создать чистую новую, естественно, не забыв перед этим проверить (и отключить) связи таблицы и не автоиндексы. А затем все включить (и перестроить индексы).
Если же вам нужно просто выкинуть, к примеру, записи за предыдущие 4 года и оставить за текущий год, и уменьшить физический размер, занимаемый таблицей на диске, то тогда сценарий более длинный:
- делаете бэкап БД или таблицы
- удаляете записи по диапазонам первичного ключа (или по дате), причем желательно не по одной записи, а пачками в транзакции (например, по 1000 или по 10000шт, зависит от размера строки и скорости удаления)
- после удаления "сжимаете" таблицу, т.е. делаете физическую перезапись данной таблицы, что приведет к освобождению незанятых экстентов и страниц. Способов такой перезаписи описано довольно много (в том числе и здесь, на форуме), самый популярный
alter fragment on table "имя таблицы" init in "work_dbs"
...
Рейтинг: 0 / 0
26.07.2011, 17:05
    #37367809
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
SINDEXНет не фрагментированая можно по подробней об этом или ссылочку где почитать?
Где FAQ находится знаете ? Там же есть ссылки на все виды документации. В документации все находится элементарно просто.
Для вашей версии см. Руководство администратора.
...
Рейтинг: 0 / 0
26.07.2011, 21:06
    #37368108
SINDEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
vasilisSINDEXДоброе время суток!
Посоветуйте как я могу уменьшить размер таблици. Пробовал удолять записи в таблици, но размер не изменяется.
Что посоветуете ? как можно уменьшить таблицу ?

Если все эти записи в логе вам сейчас уже не нужны, то можно просто удалить всю таблицу и создать чистую новую, естественно, не забыв перед этим проверить (и отключить) связи таблицы и не автоиндексы. А затем все включить (и перестроить индексы).
Если же вам нужно просто выкинуть, к примеру, записи за предыдущие 4 года и оставить за текущий год, и уменьшить физический размер, занимаемый таблицей на диске, то тогда сценарий более длинный:
- делаете бэкап БД или таблицы
- удаляете записи по диапазонам первичного ключа (или по дате), причем желательно не по одной записи, а пачками в транзакции (например, по 1000 или по 10000шт, зависит от размера строки и скорости удаления)
- после удаления "сжимаете" таблицу, т.е. делаете физическую перезапись данной таблицы, что приведет к освобождению незанятых экстентов и страниц. Способов такой перезаписи описано довольно много (в том числе и здесь, на форуме), самый популярный
alter fragment on table "имя таблицы" init in "work_dbs"


Почитал не много про alter fragment возникло несколько вопросов.

1. Можно-ли это делать на рабочей базе(записи в эту таблицу добавляются 24 часа в сутки)
2. Если я правильно понял происходит некий процесс копирования таблици создаётся вторая после цего удаляется первая(ну и в зависемости от комманды закидывает на один тейбл спейс или на два, три и т.д.). Отсюда вопрос в базе осталось 2Гб свободного пространства пройдёт-ли процесс успешно или нужно 22Гб свободного пространства?
3. На вскидку как много времени на это уйдёт и какова вероятность уронить таблицу или всю базу?
...
Рейтинг: 0 / 0
27.07.2011, 10:16
    #37368445
Daugava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
1. Нет, в процессе выполнения Alter Fragment таблица будет не доступной.
2. Зависит от того, сколько данных там осталось. Очень грубо прикинуть можно так: вас было 40 млн.записей и они занимали 20 Гб, вы оставили 2 млн. записей, т.е. вам должно хватить 1Гб.
Если в таблице не полей аля varchar, либо известны средние размеры varchar-ов, то размер можно оценить точнее.
Не забываем про размеры EXTENT-ов.
3. В принципе это длительная операция, но сильно зависит от того, сколько записей вы оставили в таблице, а также какая производительность вашего сервера. Например, у меня ранее архив нулевого уровня ранее выполнялся 4 часа, а сейчас он делается за 4 минуты, при том же объеме данных.
...
Рейтинг: 0 / 0
27.07.2011, 10:31
    #37368473
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
За раз: переименовать старую, создать новую с нужным именем аналогичной структурой (фрагментированную по годам если есть возможность).
Потихоньку проинсертить из старой нужные записи в новую.
Вылить анлоадом старую в бекап.
Дропнуть старую.
...
Рейтинг: 0 / 0
03.08.2011, 08:51
    #37378055
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
IkirSINDEX,

Таблица фрагментирована? Если нет, то стоит подумать над этим.
Посмотрите описание оператора TRUNCATE.
И конечно не забудьте выгрузить нужные данные!!!

truncate не помог бы ему если требуется не удалять все данные из таблицы. Вообще было бы неплохо иметь возможность каким то образом без перезаливки данных освобождать пустые страницы таблиц, например после удаления большого числа записей.
...
Рейтинг: 0 / 0
03.08.2011, 08:54
    #37378062
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
Androntruncate не помог бы ему если требуется не удалять все данные из таблицы. Вообще было бы неплохо иметь возможность каким то образом без перезаливки данных освобождать пустые страницы таблиц, например после удаления большого числа записей.сжатие которое в информикс эту проблему решает, перекладывает в начало таблицы, обрезает конец, ну и еще жмет.
...
Рейтинг: 0 / 0
03.08.2011, 10:43
    #37378264
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
Журавлев ДенисAndrontruncate не помог бы ему если требуется не удалять все данные из таблицы. Вообще было бы неплохо иметь возможность каким то образом без перезаливки данных освобождать пустые страницы таблиц, например после удаления большого числа записей.сжатие которое в информикс эту проблему решает, перекладывает в начало таблицы, обрезает конец, ну и еще жмет.

Если мы уже не обсуждаем проблему ТС на 9.4, то для этих целей вместо обрезания (с) TRUNCATE есть усушка (c) SHRINK.
...
Рейтинг: 0 / 0
03.08.2011, 11:05
    #37378327
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
Журавлев Денис,

Только для использования сжатия насколько я знаю, надо докупать лицензию, так что не всегда опять таки применимо. А так конечно это работает, даже проверял :)

И кстати мб на самом деле ведь можно repack и shrink использовать без включения сжатия. Надо проверить.
...
Рейтинг: 0 / 0
03.08.2011, 11:35
    #37378399
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
АнатоЛойЕсли мы уже не обсуждаем проблему ТС на 9.4, то для этих целей вместо обрезания (с) TRUNCATE есть усушка (c) SHRINK.мы ее не обсуждаем, она слишком скучная.
...
Рейтинг: 0 / 0
03.08.2011, 13:07
    #37378594
Ikir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
Журавлев Дениссжатие которое в информикс эту проблему решает, перекладывает в начало таблицы, обрезает конец, ну и еще жмет.

Сжатие на уровне информикс лишь растянет "удовольствие", но не решит проблему распухания таблицы и её периодической чистки.
...
Рейтинг: 0 / 0
03.08.2011, 13:17
    #37378623
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
IkirЖуравлев Дениссжатие которое в информикс эту проблему решает, перекладывает в начало таблицы, обрезает конец, ну и еще жмет.

Сжатие на уровне информикс лишь растянет "удовольствие", но не решит проблему распухания таблицы и её периодической чистки.

Есть "авторастягиватель удовольствия" (с) auto_crsd .
Не Tefal, а IBM "думает от нас!" (с) Tefal :).
...
Рейтинг: 0 / 0
03.08.2011, 13:35
    #37378666
Ikir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
АнатоЛойЕсть "авторастягиватель удовольствия" (с)
Не Tefal, а IBM "думает от нас!" (с) Tefal :).

Мдааа 11.7 ... скоро будет всё само ))))))))))))))))))))
...
Рейтинг: 0 / 0
03.08.2011, 13:53
    #37378701
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
IkirСжатие на уровне информикс лишь растянет "удовольствие", но не решит проблему распухания таблицы и её периодической чистки.мы не обслуждаем проблему ТС, она скучная, все что я хотел сказать ТС-у написано 11032337
...
Рейтинг: 0 / 0
03.08.2011, 13:57
    #37378712
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
АнатоЛойauto_crsd
Не Tefal, а IBM "думает от нас!" (с) Tefal :).И ни слова про rowid, оракл хоть соломки подстелил (alter table enable/disable row movement)
...
Рейтинг: 0 / 0
03.08.2011, 14:28
    #37378799
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
Журавлев ДенисАнатоЛойauto_crsd
Не Tefal, а IBM "думает от нас!" (с) Tefal :).И ни слова про rowid, оракл хоть соломки подстелил (alter table enable/disable row movement)
Да, кому-то может оказаться критично...
Сам не обратил внимания, поскольку у нас после пары проблемных случаев стало заведено "Не использовать rowid!".
...
Рейтинг: 0 / 0
03.08.2011, 16:03
    #37379075
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
АнатоЛой "Не использовать rowid!".
Informix об этом начал писать еще 10 лет назад :)
...
Рейтинг: 0 / 0
03.08.2011, 19:17
    #37379459
Daugava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие таблици
vasilis,

тсс. 10 лет назад уже был IBM. А про rowid говорили еще в прошлом тысячелетии.
Почитал на этой почве украинскую версию педивикии, это просто ужас какой-то я туда внес пару лет назад, ошибок просто море было.
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Сжатие таблици / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]