привет

Немного альтернативной истории — Да, победили, и что толку? — вздыхал Саня. — Столько крови пролили, в половине Европы социализм установили. Теперь нам никогда не войти в европейскую семью народов, мы не уважали их ценности. А знаешь, сколько немок изнасиловали наши солдаты, когда заняли Берлин? Миллион! Это же ужасно! Саня, либеральный сетевой журналист, отлично...

Далее

#котозависимость Та же проблема...

Далее

Креатив в Магнитогорске Как и раньше продолжаю замечать необычные вещи, когда гуляю по городу. Некоторые кеативные люди заставляют улыбаться. Лифт, на котором можно отправиться в "Ж". Магазин, в котором продается самая не свежая выпечка в городе.

Далее

С днем рождения меня! https://www.youtube.com/watch?v=DL3pP7FsRGE

Далее

Как создать индекс в Oracle, если таблица занята.

Рубрика : Программизмы, Разное

Иногда бывают такие ситуации, когда что-то случилось с индексами на важной таблице. Если работа с БД непрерывная и эта таблица очень часто занята, восстановить индексы достаточно проблематично, так как ресурс постоянно занят. Конечно можно поймать такой момент когда СУБД даст возможность создать index. Однако если эта проблема всплыла только после запуска длительной и важной операции, которая не требует отлагательств. Так как объект занят вам придется писать код создания индекса и сидеть давить, ловя момент когда пройдет commit и объект разблокируется. Не очень радужные перспективы. По-этому умные люди в Oracle подумали об этом. В Oracle Enterprise Edition есть возможно запустить создание индекса в режиме ожидания. К сожалению уже в версии Standard Edition данная возможность отсутствует. Что бы запустить создание индекса, когда ресурс занят необходимо дописать в конце ONLINE.

CREATE INDEX index_name ON table_name (column_name, column_name, column_name, column_name) ONLINE;

Операция запуститься и будет ждать момента, когда ресурс освободится. Как только пройдет commit запустится создание индекса. Имейте в виду, что время, необходимое для завершения построения онлайн индекса пропорциональный размеру таблицы и числу одновременно выполняющихся DML отчетности. Поэтому, лучше всего, начинать оперативное построение индекса при низкой DML активности.

Очень полезная feature. Если у вас версия Enterprise Edition советую пользоваться, так как она нужна не только в ситуации, которую описала я. Почитать документацию об этом можно здесь.

Прокомментировать