|
Сжатие таблици
|
|||
---|---|---|---|
#18+
Доброе время суток! С Informix только только начинаю работь, от старого работника осталась база в ней таблица с логами за 5 лет. Таблица разрослась до 22Гб. Посоветуйте как я могу уменьшить размер таблици. Пробовал удолять записи в таблици, но размер не изменяется. Что посоветуюте как можно уменьшить таблицую Зарание спасибо. ОС: HP UX Версия БД: IBM Informix Dynamic Server Version 9.40.FC7 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2011, 14:48 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
SINDEX, Таблица фрагментирована? Если нет, то стоит подумать над этим. Посмотрите описание оператора TRUNCATE. И конечно не забудьте выгрузить нужные данные!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2011, 15:15 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
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." ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2011, 15:39 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
SINDEXДоброе время суток! Посоветуйте как я могу уменьшить размер таблици. Пробовал удолять записи в таблици, но размер не изменяется. Что посоветуете ? как можно уменьшить таблицу ? Если все эти записи в логе вам сейчас уже не нужны, то можно просто удалить всю таблицу и создать чистую новую, естественно, не забыв перед этим проверить (и отключить) связи таблицы и не автоиндексы. А затем все включить (и перестроить индексы). Если же вам нужно просто выкинуть, к примеру, записи за предыдущие 4 года и оставить за текущий год, и уменьшить физический размер, занимаемый таблицей на диске, то тогда сценарий более длинный: - делаете бэкап БД или таблицы - удаляете записи по диапазонам первичного ключа (или по дате), причем желательно не по одной записи, а пачками в транзакции (например, по 1000 или по 10000шт, зависит от размера строки и скорости удаления) - после удаления "сжимаете" таблицу, т.е. делаете физическую перезапись данной таблицы, что приведет к освобождению незанятых экстентов и страниц. Способов такой перезаписи описано довольно много (в том числе и здесь, на форуме), самый популярный alter fragment on table "имя таблицы" init in "work_dbs" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2011, 17:03 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
SINDEXНет не фрагментированая можно по подробней об этом или ссылочку где почитать? Где FAQ находится знаете ? Там же есть ссылки на все виды документации. В документации все находится элементарно просто. Для вашей версии см. Руководство администратора. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2011, 17:05 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
vasilisSINDEXДоброе время суток! Посоветуйте как я могу уменьшить размер таблици. Пробовал удолять записи в таблици, но размер не изменяется. Что посоветуете ? как можно уменьшить таблицу ? Если все эти записи в логе вам сейчас уже не нужны, то можно просто удалить всю таблицу и создать чистую новую, естественно, не забыв перед этим проверить (и отключить) связи таблицы и не автоиндексы. А затем все включить (и перестроить индексы). Если же вам нужно просто выкинуть, к примеру, записи за предыдущие 4 года и оставить за текущий год, и уменьшить физический размер, занимаемый таблицей на диске, то тогда сценарий более длинный: - делаете бэкап БД или таблицы - удаляете записи по диапазонам первичного ключа (или по дате), причем желательно не по одной записи, а пачками в транзакции (например, по 1000 или по 10000шт, зависит от размера строки и скорости удаления) - после удаления "сжимаете" таблицу, т.е. делаете физическую перезапись данной таблицы, что приведет к освобождению незанятых экстентов и страниц. Способов такой перезаписи описано довольно много (в том числе и здесь, на форуме), самый популярный alter fragment on table "имя таблицы" init in "work_dbs" Почитал не много про alter fragment возникло несколько вопросов. 1. Можно-ли это делать на рабочей базе(записи в эту таблицу добавляются 24 часа в сутки) 2. Если я правильно понял происходит некий процесс копирования таблици создаётся вторая после цего удаляется первая(ну и в зависемости от комманды закидывает на один тейбл спейс или на два, три и т.д.). Отсюда вопрос в базе осталось 2Гб свободного пространства пройдёт-ли процесс успешно или нужно 22Гб свободного пространства? 3. На вскидку как много времени на это уйдёт и какова вероятность уронить таблицу или всю базу? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2011, 21:06 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
1. Нет, в процессе выполнения Alter Fragment таблица будет не доступной. 2. Зависит от того, сколько данных там осталось. Очень грубо прикинуть можно так: вас было 40 млн.записей и они занимали 20 Гб, вы оставили 2 млн. записей, т.е. вам должно хватить 1Гб. Если в таблице не полей аля varchar, либо известны средние размеры varchar-ов, то размер можно оценить точнее. Не забываем про размеры EXTENT-ов. 3. В принципе это длительная операция, но сильно зависит от того, сколько записей вы оставили в таблице, а также какая производительность вашего сервера. Например, у меня ранее архив нулевого уровня ранее выполнялся 4 часа, а сейчас он делается за 4 минуты, при том же объеме данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2011, 10:16 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
За раз: переименовать старую, создать новую с нужным именем аналогичной структурой (фрагментированную по годам если есть возможность). Потихоньку проинсертить из старой нужные записи в новую. Вылить анлоадом старую в бекап. Дропнуть старую. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2011, 10:31 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
IkirSINDEX, Таблица фрагментирована? Если нет, то стоит подумать над этим. Посмотрите описание оператора TRUNCATE. И конечно не забудьте выгрузить нужные данные!!! truncate не помог бы ему если требуется не удалять все данные из таблицы. Вообще было бы неплохо иметь возможность каким то образом без перезаливки данных освобождать пустые страницы таблиц, например после удаления большого числа записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 08:51 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
Androntruncate не помог бы ему если требуется не удалять все данные из таблицы. Вообще было бы неплохо иметь возможность каким то образом без перезаливки данных освобождать пустые страницы таблиц, например после удаления большого числа записей.сжатие которое в информикс эту проблему решает, перекладывает в начало таблицы, обрезает конец, ну и еще жмет. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 08:54 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
Журавлев ДенисAndrontruncate не помог бы ему если требуется не удалять все данные из таблицы. Вообще было бы неплохо иметь возможность каким то образом без перезаливки данных освобождать пустые страницы таблиц, например после удаления большого числа записей.сжатие которое в информикс эту проблему решает, перекладывает в начало таблицы, обрезает конец, ну и еще жмет. Если мы уже не обсуждаем проблему ТС на 9.4, то для этих целей вместо обрезания (с) TRUNCATE есть усушка (c) SHRINK. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 10:43 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
Журавлев Денис, Только для использования сжатия насколько я знаю, надо докупать лицензию, так что не всегда опять таки применимо. А так конечно это работает, даже проверял :) И кстати мб на самом деле ведь можно repack и shrink использовать без включения сжатия. Надо проверить. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 11:05 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
АнатоЛойЕсли мы уже не обсуждаем проблему ТС на 9.4, то для этих целей вместо обрезания (с) TRUNCATE есть усушка (c) SHRINK.мы ее не обсуждаем, она слишком скучная. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 11:35 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
Журавлев Дениссжатие которое в информикс эту проблему решает, перекладывает в начало таблицы, обрезает конец, ну и еще жмет. Сжатие на уровне информикс лишь растянет "удовольствие", но не решит проблему распухания таблицы и её периодической чистки. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 13:07 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
IkirЖуравлев Дениссжатие которое в информикс эту проблему решает, перекладывает в начало таблицы, обрезает конец, ну и еще жмет. Сжатие на уровне информикс лишь растянет "удовольствие", но не решит проблему распухания таблицы и её периодической чистки. Есть "авторастягиватель удовольствия" (с) auto_crsd . Не Tefal, а IBM "думает от нас!" (с) Tefal :). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 13:17 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
АнатоЛойЕсть "авторастягиватель удовольствия" (с) Не Tefal, а IBM "думает от нас!" (с) Tefal :). Мдааа 11.7 ... скоро будет всё само )))))))))))))))))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 13:35 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
IkirСжатие на уровне информикс лишь растянет "удовольствие", но не решит проблему распухания таблицы и её периодической чистки.мы не обслуждаем проблему ТС, она скучная, все что я хотел сказать ТС-у написано 11032337 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 13:53 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
АнатоЛойauto_crsd Не Tefal, а IBM "думает от нас!" (с) Tefal :).И ни слова про rowid, оракл хоть соломки подстелил (alter table enable/disable row movement) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 13:57 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
Журавлев ДенисАнатоЛойauto_crsd Не Tefal, а IBM "думает от нас!" (с) Tefal :).И ни слова про rowid, оракл хоть соломки подстелил (alter table enable/disable row movement) Да, кому-то может оказаться критично... Сам не обратил внимания, поскольку у нас после пары проблемных случаев стало заведено "Не использовать rowid!". ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 14:28 |
|
Сжатие таблици
|
|||
---|---|---|---|
#18+
АнатоЛой "Не использовать rowid!". Informix об этом начал писать еще 10 лет назад :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2011, 16:03 |
|
|
start [/forum/topic.php?fid=44&msg=37367438&tid=1607299]: |
0ms |
get settings: |
12ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
38ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
341ms |
get tp. blocked users: |
0ms |
others: | 304ms |
total: | 706ms |
0 / 0 |