|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
IDS 7.31 FD10 Solaris 10 исходные данные есть детачнутые индексы в отдельном пространстве, довольно сильно фрагментированные и пространство к тому же близко к исчерпанию. имеется сильное желание их переложить в другие пространства и на всякий случай дефрагментировать. Вопрос использовал ли кто нибудь для этого alter fragment on index ... init in newdbs ? То что их можно пересоздать понятно, но может альтер фрагментом быстрее? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2008, 19:12 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
cprIDS 7.31 FD10 Solaris 10 исходные данные есть детачнутые индексы в отдельном пространстве, довольно сильно фрагментированные и пространство к тому же близко к исчерпанию. имеется сильное желание их переложить в другие пространства и на всякий случай дефрагментировать. Вопрос использовал ли кто нибудь для этого alter fragment on index ... init in newdbs ? То что их можно пересоздать понятно, но может альтер фрагментом быстрее? По моему опыту 1. alter fragment работает медленне. 2. Требует дополнительное пространство в логических журналах ( по сравнению с пересозданием). 3. Блокировок тоже может не хватать. Лучше пересоздавать с onmode -M (максимум сколько не жалко ) onmode -D 100 onmode -S ( не меньше чем количество фрагментов) Количество темп дб должно быть больше одного. Желательно по количеству соответствовать количеству виртуальных процессоров класса ЦПУ или больше. PSORT_NPROCS установить в значение не меньше количества виртуальных процессоров класса ЦПУ. Если oltp то буфера можно забрать в пользу PDQ . ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2008, 20:12 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
Вчера вечером ответил в том же ключе (т.е. drop-create будет быстрее), но уходя с работы пост забыл отправить. С утра порылся в архивах CDI на эту тему. Арт Кагель таки рекомендует в таких случаях использовать Alter Fragment. Там же говориться, что drop/create не очень хорош, когда index используется constraint-ами, ибо их тоже прийдется в этом случае пересоздавать. Также в поле зрения Гугля попал Денис Журавлев, который в 2002 году рекомендовал Alter Fragment. Резюме. Есть констрейнты - Alter Fragment, нет - drop/create. P.S. Да на счет ускорения построения индекса, начал гуглять старое обсуждение в UCDI, а vasilis его давное уже в здешний FAQ выложил. Обращу внимание, что при построении индекса лучше использовать не dbspace, а каталоги на разных дисках! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2008, 09:18 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
onstat- 3. Блокировок тоже может не хватать. Я предполагаю переводить БД в нелогируемый режим, при этом может нехватать блокировок? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2008, 11:04 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
cprЯ предполагаю переводить БД в нелогируемый режим Если так, то никто из пользователей работать с БД не будет, а значит способ drop-create более предпочтителен. А где лежат системные индексы ? Если вы создавали констрейнты без предварительного создания соответствующих индексов, то системные индексы лежат в том же дбспейсе, где создана БД. Поэтому в вашем существующем пространстве с отсоединенными индексами системных индексов, скорее всего, нет. Если же и системные индексы тоже нужно переносить, то помните о порядке выключения связных констрейнтов. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2008, 11:57 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
vasiliscprЯ предполагаю переводить БД в нелогируемый режим Если так, то никто из пользователей работать с БД не будет, а значит способ drop-create более предпочтителен. А где лежат системные индексы ? Если вы создавали констрейнты без предварительного создания соответствующих индексов, то системные индексы лежат в том же дбспейсе, где создана БД. Поэтому в вашем существующем пространстве с отсоединенными индексами системных индексов, скорее всего, нет. Если же и системные индексы тоже нужно переносить, то помните о порядке выключения связных констрейнтов. drop-create делать не хочется т.к. это таблица на которую имеется совершенно безумное количество ссылок. Системных индексов нет, все созданы явно т.к. таблицу в свое время я перевел в круговую фрагментацию. Так что этой проблемы нет. Сейчас как раз сисадмины подогнали тестовый сервер, проверяю альтер фрагмент. Работает он как то странно. Насколько я вижу он пытается построить индекс заново. Очень похоже, что для первичного ключа надо будет сделать alter fragment , а для остальных индексов использовать проверенный дедвский способ. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2008, 12:26 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
похоже, что для меня (в смысле 7.31) alter fragment не подойтет точно. Индекс он строит так: каждый фрагмент сканируется столько раз, сколько у меня чанков. При этом первый чанк сканится 1 раз, 2-й 2 раза, 3-й 3 раза ... 16-й 16 раз. У меня 4 фрагмента по 16 чанков. Дай то бог, чтобы первичный ключ за приемлемое время удалось переместить. Ну еще можно попробовать настройки pdq потюнить. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2008, 13:10 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
cprvasiliscprЯ предполагаю переводить БД в нелогируемый режим Если так, то никто из пользователей работать с БД не будет, а значит способ drop-create более предпочтителен. А где лежат системные индексы ? Если вы создавали констрейнты без предварительного создания соответствующих индексов, то системные индексы лежат в том же дбспейсе, где создана БД. Поэтому в вашем существующем пространстве с отсоединенными индексами системных индексов, скорее всего, нет. Если же и системные индексы тоже нужно переносить, то помните о порядке выключения связных констрейнтов. Системных индексов нет, все созданы явно т.к. таблицу в свое время я перевел в круговую фрагментацию. Так что этой проблемы нет. Не столько для тебя, сколько для других, читающих ветку, хочу уточнить, что системным индекс называется, если на нем реализован (с помощью механизма индексов) системный констрейнт (уникальности, первичного или внешнего ключа), а уж как там этот индекс будет создан - автоматически или вручную - уже не так важно. Поэтому системные индексы у вас все же есть. Поэтому я и спрашивал о их месте расположения. IMHO. Поправьте, если я не прав. cprСейчас как раз сисадмины подогнали тестовый сервер, проверяю альтер фрагмент. Работает он как то странно. Насколько я вижу он пытается построить индекс заново. Очень похоже, что для первичного ключа надо будет сделать alter fragment , а для остальных индексов использовать проверенный дедвский способ. alter fragment тем и ценен, что позволяет переносить данные не вникая в многочисленные связи и зависимости между таблицами. Но за эту "легкость использования" надо чем то платить... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2008, 17:12 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
vasilis, Ага, скорее я не совсем корректно высказался. Автоиндексов нет, т.к. ... и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2008, 17:50 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
cprпохоже, что для меня (в смысле 7.31) alter fragment не подойтет точно. Индекс он строит так: каждый фрагмент сканируется столько раз, сколько у меня чанков. При этом первый чанк сканится 1 раз, 2-й 2 раза, 3-й 3 раза ... 16-й 16 раз. У меня 4 фрагмента по 16 чанков. Дай то бог, чтобы первичный ключ за приемлемое время удалось переместить. Ну еще можно попробовать настройки pdq потюнить. Мама моя рОдная, этот альтер фрагмент писали какие-то монстры. Он описаный выше процесс делал ТРИ раза. Но в приемлемое время для индекса первичного ключа слава богу попадаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2008, 17:53 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
cprcprпохоже, что для меня (в смысле 7.31) alter fragment не подойтет точно. Индекс он строит так: каждый фрагмент сканируется столько раз, сколько у меня чанков. При этом первый чанк сканится 1 раз, 2-й 2 раза, 3-й 3 раза ... 16-й 16 раз. У меня 4 фрагмента по 16 чанков. Дай то бог, чтобы первичный ключ за приемлемое время удалось переместить. Ну еще можно попробовать настройки pdq потюнить. Мама моя рОдная, этот альтер фрагмент писали какие-то монстры. Он описаный выше процесс делал ТРИ раза. Но в приемлемое время для индекса первичного ключа слава богу попадаю. Слова про монстров забираю обратно. Create index делал ровно то же самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 10:11 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
cpr...Работает он как то странно. Насколько я вижу он пытается построить индекс заново... Индексная запись - это значение ключа и указатель (неважно, из чего именно он состоит) на данные. Вы меняете расположение данных и, как следствие, должны измениться указатели на них. Это не вполне перестройка индекса, поскольку сортировка не требуется, но нечто похожее. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 13:11 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
vasilisalter fragment тем и ценен, что позволяет переносить данные не вникая в многочисленные связи и зависимости между таблицами. Но за эту "легкость использования" надо чем то платить... Абсолютно согласен с предыдущим оратором. И напрашивается логичное, на мой взгляд, решение - если индекс не обслуживает констрейнт, его имеет смысл перестроить (время то же, но он станет более компактным), а если обслуживает, то его имеет смысл не трогать, дабы не иметь последующего удовольствия восстанавливать "пропавшие" констрейнты. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 13:15 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
Алексанvasilisalter fragment тем и ценен, что позволяет переносить данные не вникая в многочисленные связи и зависимости между таблицами. Но за эту "легкость использования" надо чем то платить... Абсолютно согласен с предыдущим оратором. И напрашивается логичное, на мой взгляд, решение - если индекс не обслуживает констрейнт, его имеет смысл перестроить (время то же, но он станет более компактным), а если обслуживает, то его имеет смысл не трогать, дабы не иметь последующего удовольствия восстанавливать "пропавшие" констрейнты. Сделал альтер фрагмент и дроп-криэйт. Разница очень незначительна 256 минут и 264 минуты на один индекс. Спрашивайтся зачем брать с собой эту лошадь. Если кому интересно - подробности Таблица в четырех фрагментах общий объем 102 гига, платформа UltraSPARCIV 1350 MHz дисковая посистема FC массив (внутри SAS) 3Gbit/sec интерфейс, RAID10. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 17:27 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
cprАлексанvasilisalter fragment тем и ценен, что позволяет переносить данные не вникая в многочисленные связи и зависимости между таблицами. Но за эту "легкость использования" надо чем то платить... Абсолютно согласен с предыдущим оратором. И напрашивается логичное, на мой взгляд, решение - если индекс не обслуживает констрейнт, его имеет смысл перестроить (время то же, но он станет более компактным), а если обслуживает, то его имеет смысл не трогать, дабы не иметь последующего удовольствия восстанавливать "пропавшие" констрейнты. Сделал альтер фрагмент и дроп-криэйт. Разница очень незначительна 256 минут и 264 минуты на один индекс. Спрашивайтся зачем брать с собой эту лошадь. Если кому интересно - подробности Таблица в четырех фрагментах общий объем 102 гига, платформа UltraSPARCIV 1350 MHz дисковая посистема FC массив (внутри SAS) 3Gbit/sec интерфейс, RAID10. У Вас что то не так сконфигурировано, при таком же объеме таблицы( около 100 ГБ), длине ключа около 20 байт и 150 млн записей, постойка одного индекса занимала около 20 мин. Фрагментов у меня по более было ( около 20 ). Основные критерии это производительность процессоров и производительность дисковой подсистемы по мультиблочному чтению. Процессоры должны быть загружены на все 100% ~( 90(User)+5(SYS)+5(IOW) ) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 18:53 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
onstat- У Вас что то не так сконфигурировано, при таком же объеме таблицы( около 100 ГБ), длине ключа около 20 байт и 150 млн записей, постойка одного индекса занимала около 20 мин. Фрагментов у меня по более было ( около 20 ). Основные критерии это производительность процессоров и производительность дисковой подсистемы по мультиблочному чтению. Процессоры должны быть загружены на все 100% ~( 90(User)+5(SYS)+5(IOW) ) Интересно. данные по таблице 33,5 миллиона записей, 4 фрагмента по 32 гиг каждый. Размер записи 776 байт. Подскажите где посмотреть размер ключа? iostat показывает что с диска чтение происходит примерно 130 метров в секунду. загрузка CPU от одного до двух ядер CPU ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 19:21 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
onstat-, я предполагаю от ширины записи таблицы многое зависит. и возможно от количества чанков в фрагменте. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 19:22 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
cpr, прикладываю onconfig ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 19:34 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
cpronstat-, я предполагаю от ширины записи таблицы многое зависит. и возможно от количества чанков в фрагменте. Я тоже думаю что это имеет влияние процентов на 10-15%, но не в 10 раз. Сотношение загрузка процессора - загрузки дисковой подсистемы у Вас какое ? Дайте результат sar -ud и onstat -g mgm во время постройки индекса. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 19:34 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
onstat-cpronstat-, я предполагаю от ширины записи таблицы многое зависит. и возможно от количества чанков в фрагменте. Я тоже думаю что это имеет влияние процентов на 10-15%, но не в 10 раз. Сотношение загрузка процессора - загрузки дисковой подсистемы у Вас какое ? Дайте результат sar -ud и onstat -g mgm во время постройки индекса. sar -ud это что? у меня такой утилиты нет т.к. соляра. у меня iostat вывод onstat -g mgm во время завершения построения индекса, когда уже данные перестали массированно читаться IBM Informix Dynamic Server Version 7.31.FD10 -- On-Line -- Up 20:04:19 -- 27206656 Kbytes Memory Grant Manager (MGM) -------------------------- MAX_PDQPRIORITY: 0 DS_MAX_QUERIES: 307200 DS_MAX_SCANS: 1048576 DS_TOTAL_MEMORY: 39321600 KB Queries: Active Ready Maximum 0 0 307200 Memory: Total Free Quantum (KB) 39321600 39321600 128 Scans: Total Free Quantum 1048576 1048576 1 Load Control: (Memory) (Scans) (Priority) (Max Queries) (Reinit) Gate 1 Gate 2 Gate 3 Gate 4 Gate 5 (Queue Length) 0 0 0 0 0 Active Queries: None Ready Queries: None Free Resource Average # Minimum # -------------- --------------- --------- Memory 0.0 +- 0.0 4915200 Scans 0.0 +- 0.0 1048576 Queries Average # Maximum # Total # -------------- --------------- --------- ------- Active 0.0 +- 0.0 0 0 Ready 0.0 +- 0.0 0 0 Resource/Lock Cycle Prevention count: 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 19:42 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
onstat-, если можно завтра выложу остальное. подскажите что это за ключи у sar, я попробую аналоги для соляры подобрать ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 19:44 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
cprcpr, прикладываю onconfig попробуйте для начала: MAX_PDQPRIORITY 100 DS_TOTAL_MEMORY 6553600 Что бы не перестартовывать базу можно воспользоваться onmode -D 100 onmode -M 6553600 Потом также через onmode вернЁте назад . Думаю результаты Вас очень удивят ( в хорошем смысле). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 19:50 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
Да забыл , переменную окружения проверить и поставить PSORT_NPROCS =16, и перестратовать базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 20:01 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
onstat-Да забыл , переменную окружения проверить и поставить PSORT_NPROCS =16, и перестратовать базу. И в скрипте постройки индекса первой строчкой сказать : set pdqpriority 100; ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 20:07 |
|
перенос индексов в другие пространста альтер фрагментом
|
|||
---|---|---|---|
#18+
cpr iostat показывает что с диска чтение происходит примерно 130 метров в секунду. загрузка CPU от одного до двух ядер CPU По процам должно быть зангружено минимум 4 ядра ( по количеству фрагментов ) на 100 %. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 20:16 |
|
|
start [/forum/topic.php?fid=44&fpage=32&tid=1607923]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
138ms |
get tp. blocked users: |
2ms |
others: | 320ms |
total: | 546ms |
0 / 0 |