powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / перенос индексов в другие пространста альтер фрагментом
25 сообщений из 50, страница 1 из 2
перенос индексов в другие пространста альтер фрагментом
    #35730976
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
IDS 7.31 FD10 Solaris 10

исходные данные
есть детачнутые индексы в отдельном пространстве, довольно сильно фрагментированные и пространство к тому же близко к исчерпанию.

имеется сильное желание их переложить в другие пространства и на всякий случай дефрагментировать.

Вопрос использовал ли кто нибудь для этого alter fragment on index ... init in newdbs ?

То что их можно пересоздать понятно, но может альтер фрагментом быстрее?
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35731044
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 .
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35731478
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вчера вечером ответил в том же ключе (т.е. drop-create будет быстрее), но уходя с работы пост забыл отправить.
С утра порылся в архивах CDI на эту тему. Арт Кагель таки рекомендует в таких случаях использовать Alter Fragment. Там же говориться, что drop/create не очень хорош, когда index используется constraint-ами, ибо их тоже прийдется в этом случае пересоздавать.

Также в поле зрения Гугля попал Денис Журавлев, который в 2002 году рекомендовал Alter Fragment.

Резюме. Есть констрейнты - Alter Fragment, нет - drop/create.

P.S. Да на счет ускорения построения индекса, начал гуглять старое обсуждение в UCDI, а vasilis его давное уже
в здешний FAQ выложил.
Обращу внимание, что при построении индекса лучше использовать не dbspace, а каталоги на разных дисках!
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35731713
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
onstat-

3. Блокировок тоже может не хватать.



Я предполагаю переводить БД в нелогируемый режим, при этом может нехватать блокировок?
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35731877
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cprЯ предполагаю переводить БД в нелогируемый режим
Если так, то никто из пользователей работать с БД не будет, а значит способ drop-create более предпочтителен.
А где лежат системные индексы ?
Если вы создавали констрейнты без предварительного создания соответствующих индексов, то системные индексы лежат в том же дбспейсе, где создана БД. Поэтому в вашем существующем пространстве с отсоединенными индексами системных индексов, скорее всего, нет.
Если же и системные индексы тоже нужно переносить, то помните о порядке выключения связных констрейнтов.
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35731980
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
vasiliscprЯ предполагаю переводить БД в нелогируемый режим
Если так, то никто из пользователей работать с БД не будет, а значит способ drop-create более предпочтителен.
А где лежат системные индексы ?
Если вы создавали констрейнты без предварительного создания соответствующих индексов, то системные индексы лежат в том же дбспейсе, где создана БД. Поэтому в вашем существующем пространстве с отсоединенными индексами системных индексов, скорее всего, нет.
Если же и системные индексы тоже нужно переносить, то помните о порядке выключения связных констрейнтов.


drop-create делать не хочется т.к. это таблица на которую имеется совершенно безумное количество ссылок.

Системных индексов нет, все созданы явно т.к. таблицу в свое время я перевел в круговую фрагментацию. Так что этой проблемы нет.

Сейчас как раз сисадмины подогнали тестовый сервер, проверяю альтер фрагмент.
Работает он как то странно. Насколько я вижу он пытается построить индекс заново.
Очень похоже, что для первичного ключа надо будет сделать alter fragment , а для остальных индексов использовать проверенный дедвский способ.
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35732118
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
похоже, что для меня (в смысле 7.31) alter fragment не подойтет точно.
Индекс он строит так: каждый фрагмент сканируется столько раз, сколько у меня чанков. При этом первый чанк сканится 1 раз, 2-й 2 раза, 3-й 3 раза ... 16-й 16 раз.
У меня 4 фрагмента по 16 чанков. Дай то бог, чтобы первичный ключ за приемлемое время удалось переместить.
Ну еще можно попробовать настройки pdq потюнить.
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35733059
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cprvasiliscprЯ предполагаю переводить БД в нелогируемый режим
Если так, то никто из пользователей работать с БД не будет, а значит способ drop-create более предпочтителен.
А где лежат системные индексы ?
Если вы создавали констрейнты без предварительного создания соответствующих индексов, то системные индексы лежат в том же дбспейсе, где создана БД. Поэтому в вашем существующем пространстве с отсоединенными индексами системных индексов, скорее всего, нет.
Если же и системные индексы тоже нужно переносить, то помните о порядке выключения связных констрейнтов.
Системных индексов нет, все созданы явно т.к. таблицу в свое время я перевел в круговую фрагментацию. Так что этой проблемы нет.
Не столько для тебя, сколько для других, читающих ветку, хочу уточнить, что системным индекс называется, если на нем реализован (с помощью механизма индексов) системный констрейнт (уникальности, первичного или внешнего ключа), а уж как там этот индекс будет создан - автоматически или вручную - уже не так важно.
Поэтому системные индексы у вас все же есть. Поэтому я и спрашивал о их месте расположения.
IMHO. Поправьте, если я не прав.
cprСейчас как раз сисадмины подогнали тестовый сервер, проверяю альтер фрагмент.
Работает он как то странно. Насколько я вижу он пытается построить индекс заново.
Очень похоже, что для первичного ключа надо будет сделать alter fragment , а для остальных индексов использовать проверенный дедвский способ.
alter fragment тем и ценен, что позволяет переносить данные не вникая в многочисленные связи и зависимости между таблицами. Но за эту "легкость использования" надо чем то платить...
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35733240
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
vasilis,

Ага, скорее я не совсем корректно высказался. Автоиндексов нет, т.к. ... и т.д.
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35733262
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
cprпохоже, что для меня (в смысле 7.31) alter fragment не подойтет точно.
Индекс он строит так: каждый фрагмент сканируется столько раз, сколько у меня чанков. При этом первый чанк сканится 1 раз, 2-й 2 раза, 3-й 3 раза ... 16-й 16 раз.
У меня 4 фрагмента по 16 чанков. Дай то бог, чтобы первичный ключ за приемлемое время удалось переместить.
Ну еще можно попробовать настройки pdq потюнить.

Мама моя рОдная, этот альтер фрагмент писали какие-то монстры. Он описаный выше процесс делал ТРИ раза. Но в приемлемое время для индекса первичного ключа слава богу попадаю.
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35734151
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
cprcprпохоже, что для меня (в смысле 7.31) alter fragment не подойтет точно.
Индекс он строит так: каждый фрагмент сканируется столько раз, сколько у меня чанков. При этом первый чанк сканится 1 раз, 2-й 2 раза, 3-й 3 раза ... 16-й 16 раз.
У меня 4 фрагмента по 16 чанков. Дай то бог, чтобы первичный ключ за приемлемое время удалось переместить.
Ну еще можно попробовать настройки pdq потюнить.

Мама моя рОдная, этот альтер фрагмент писали какие-то монстры. Он описаный выше процесс делал ТРИ раза. Но в приемлемое время для индекса первичного ключа слава богу попадаю.

Слова про монстров забираю обратно.
Create index делал ровно то же самое.
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35734690
Алексан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cpr...Работает он как то странно. Насколько я вижу он пытается построить индекс заново... Индексная запись - это значение ключа и указатель (неважно, из чего именно он состоит) на данные. Вы меняете расположение данных и, как следствие, должны измениться указатели на них. Это не вполне перестройка индекса, поскольку сортировка не требуется, но нечто похожее.
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35734703
Алексан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilisalter fragment тем и ценен, что позволяет переносить данные не вникая в многочисленные связи и зависимости между таблицами. Но за эту "легкость использования" надо чем то платить... Абсолютно согласен с предыдущим оратором. И напрашивается логичное, на мой взгляд, решение - если индекс не обслуживает констрейнт, его имеет смысл перестроить (время то же, но он станет более компактным), а если обслуживает, то его имеет смысл не трогать, дабы не иметь последующего удовольствия восстанавливать "пропавшие" констрейнты.
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35735680
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
Алексанvasilisalter fragment тем и ценен, что позволяет переносить данные не вникая в многочисленные связи и зависимости между таблицами. Но за эту "легкость использования" надо чем то платить... Абсолютно согласен с предыдущим оратором. И напрашивается логичное, на мой взгляд, решение - если индекс не обслуживает констрейнт, его имеет смысл перестроить (время то же, но он станет более компактным), а если обслуживает, то его имеет смысл не трогать, дабы не иметь последующего удовольствия восстанавливать "пропавшие" констрейнты.

Сделал альтер фрагмент и дроп-криэйт. Разница очень незначительна 256 минут и 264 минуты на один индекс. Спрашивайтся зачем брать с собой эту лошадь.

Если кому интересно - подробности
Таблица в четырех фрагментах общий объем 102 гига, платформа UltraSPARCIV 1350 MHz дисковая посистема FC массив (внутри SAS) 3Gbit/sec интерфейс, RAID10.
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35735861
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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) )
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35735888
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
onstat-

У Вас что то не так сконфигурировано, при таком же объеме таблицы( около 100 ГБ), длине ключа
около 20 байт и 150 млн записей, постойка одного индекса занимала около 20 мин.
Фрагментов у меня по более было ( около 20 ).
Основные критерии это производительность процессоров и
производительность дисковой подсистемы по мультиблочному чтению.
Процессоры должны быть загружены на все 100% ~( 90(User)+5(SYS)+5(IOW) )

Интересно.
данные по таблице
33,5 миллиона записей, 4 фрагмента по 32 гиг каждый.
Размер записи 776 байт.
Подскажите где посмотреть размер ключа?
iostat показывает что с диска чтение происходит примерно 130 метров в секунду.
загрузка CPU от одного до двух ядер CPU
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35735891
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
onstat-,

я предполагаю от ширины записи таблицы многое зависит.
и возможно от количества чанков в фрагменте.
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35735902
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
cpr,

прикладываю onconfig
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35735903
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cpronstat-,

я предполагаю от ширины записи таблицы многое зависит.
и возможно от количества чанков в фрагменте.

Я тоже думаю что это имеет влияние процентов на 10-15%, но не в 10 раз.

Сотношение загрузка процессора - загрузки дисковой подсистемы у Вас какое ?

Дайте результат sar -ud и onstat -g mgm
во время постройки индекса.
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35735906
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
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
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35735911
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
onstat-,

если можно завтра выложу остальное.

подскажите что это за ключи у sar, я попробую аналоги для соляры подобрать
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35735916
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cprcpr,

прикладываю onconfig


попробуйте для начала:

MAX_PDQPRIORITY 100
DS_TOTAL_MEMORY 6553600

Что бы не перестартовывать базу можно воспользоваться
onmode -D 100
onmode -M 6553600

Потом также через onmode вернЁте назад .

Думаю результаты Вас очень удивят ( в хорошем смысле).
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35735930
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да забыл , переменную окружения проверить и поставить
PSORT_NPROCS =16,
и перестратовать базу.
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35735940
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-Да забыл , переменную окружения проверить и поставить
PSORT_NPROCS =16,
и перестратовать базу.

И в скрипте постройки индекса первой строчкой сказать :
set pdqpriority 100;
...
Рейтинг: 0 / 0
перенос индексов в другие пространста альтер фрагментом
    #35735948
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cpr
iostat показывает что с диска чтение происходит примерно 130 метров в секунду.
загрузка CPU от одного до двух ядер CPU


По процам должно быть зангружено минимум 4 ядра ( по количеству фрагментов ) на 100 %.
...
Рейтинг: 0 / 0
25 сообщений из 50, страница 1 из 2
Форумы / Informix [игнор отключен] [закрыт для гостей] / перенос индексов в другие пространста альтер фрагментом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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