powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / готовый скрипт для defragmentation оракл.базы (в оффлайн)
10 сообщений из 10, страница 1 из 1
готовый скрипт для defragmentation оракл.базы (в оффлайн)
    #39751485
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
начальство хочет "ужмять" некоторые сильно распухшие базы.
Есть предложение пройти по всем таблицам (хотя бы пользовательских схем)

...' alter table ' || Cur.NextTabl || ' move tablespace ' || Cur.Next;

а затем Rebuild всех соответствующих индексов.

(предварительно опустив листенеры и джобы, вестимо)

Подумалось, что может быть уже есть где-то ( от самого ли оракл, или от внушающего доверие другого провайдера) готовый скрип для такого? ( вроде в Cloud-Control есть пункт для TS "Reorganisation" ! Но он требует Database Tuning Pack, похоже! Которого у нас нет и не будет)
Но если нет, то я и сам напишу, он вроде не сложный.
...
Рейтинг: 0 / 0
готовый скрипт для defragmentation оракл.базы (в оффлайн)
    #39751517
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikон вроде не сложный.
Не сложный, главное забыть всякие специфические сегменты типа содержимого корзинки, таблиц очередей, мат. представлений и прочую муть.
...
Рейтинг: 0 / 0
готовый скрипт для defragmentation оракл.базы (в оффлайн)
    #39751533
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тема многократно обсуждаемая, парочка последних этого года:
21454194
20608172
Imho, так задача, в плане базы, а не отдельного табличного пространства - глобальная...
а даже на уровне единичного табличного пространства результат move непредсказуем, как и количество времени и телодвижений на " ужмять "...
Сугубо личное imho: решение - полный экспорт/импорт базы, если позволят размеры и отведённое время.
Легко оценить выполнив импорт на тестовый сервер. Если устраивает - копировать файлы на production.
...
Рейтинг: 0 / 0
готовый скрипт для defragmentation оракл.базы (в оффлайн)
    #39751587
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViewerСугубо личное imho: решение - полный экспорт/импорт базы, если позволят размеры и отведённое время.А EXCLUDE= и QUERY= позволяют не переносить то, что можно не переносить. Но только с участием разработчика.
...
Рейтинг: 0 / 0
готовый скрипт для defragmentation оракл.базы (в оффлайн)
    #39761121
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я, наверное, вначале не очень точно сказал про задачу: ужмять нужно не ради экономии места (хотя и ради неё тоже), но прежде всего чтоб уменьшить кол-во IO ! (т.е. постараться уменьшить chaining/разброс данных таблиц по диску)

я накопал статью на основе которой: очищаю корзины, прохожу по всем таблицам тейблспейса вот так (начиная с вехних адресов блоков)

Код: plsql
1.
2.
3.
4.
          select 'alter table ' || Tbl_Name || ' enable row movement ' as dSql_01,  
                 'alter table ' || Tbl_Name || ' shrink space cascade ' as dSql_02,
                 'alter table ' || Tbl_Name || ' move ' as dSql_03
            from  ....



затем делаю rebuild всех соответствующих индексов и в итоге собираю статистику ( dbms_stats.gather_schema_stats( ownName => aOwner, cascade => TRUE, ... ).

Вроде в пределах 10% оно TS ужмяло! :-) (в статье рекомендуют прогонять этот цикл несколько раз. Но на нашей БД он и так идёт более 20 часов!)
(а индексный TS так и вообще уполовинило!)

Главный вопрос: какие подводные камни / побочные эффекты могут вылезти с базой после такой перетурбации ??
(ну кроме разве-что если кто-то из олухов-программеров привязался к rowid, что есть тяжкий грех, разумеется. :-) Но вроде не наш случай, так как у нас годик назад эту базу уже ужминали через "exp/imp" и ничего не вылезло). Особенно возможные тормоза по производительности интересуют...

Заранее спасибо за любую инфу по существу!
...
Рейтинг: 0 / 0
готовый скрипт для defragmentation оракл.базы (в оффлайн)
    #39761132
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikужмять нужно ... чтоб уменьшить кол-во IO ! (т.е. постараться уменьшить chaining/разброс данных таблиц по диску)

Код: plsql
1.
===>          select 'alter table ' || Tbl_Name || ' enable row movement ' as dSql_01,  



1. Как enable row movement позволяет "уменьшить chaining/разброс данных таблиц по диску"?
2. Как ужатие табличного пространства на 10% позволяет "уменьшить chaining/разброс данных таблиц по диску"?

..про существу - "рубить хвост" желательно не под корень, а по месту.
К примеру, на крупных таблицах с трафиком иногда применяли физическую сортировку сегментов данных в соответствии с предикатами доступа (CTAS order by - - exch partition - drop) - это позволяло кластеризовать данные и давало реальное улучшение для наиболее востребованного варианта индексного доступа.
Как сами понимаете, "скриптом из интернетов" это не делается - все строго под конкретные условия, ибо ресурсы съест по-любому, а заметный эффект даст только если хорошо просчитано.
...
Рейтинг: 0 / 0
готовый скрипт для defragmentation оракл.базы (в оффлайн)
    #39761146
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousи прочую муть.

Ну и не забыть что просто ALTER TABLE MOVE out-or-row LOBам/CLOBам по барабану.

SY.
...
Рейтинг: 0 / 0
готовый скрипт для defragmentation оракл.базы (в оффлайн)
    #39761149
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYandrey_anonymousи прочую муть.
Ну и не забыть что просто ALTER TABLE MOVE out-or-row LOBам/CLOBам по барабану.

Не по барабану, просто для этого MOVE требует особое заклинание.
Код: plsql
1.
ALTER TABLE ... MOVE LOB(...) STORE AS (TABLESPACE ...);
...
Рейтинг: 0 / 0
готовый скрипт для defragmentation оракл.базы (в оффлайн)
    #39761155
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousНе по барабану

Ты не заметил "не забыть что просто ALTER TABLE MOVE"

SY.
...
Рейтинг: 0 / 0
готовый скрипт для defragmentation оракл.базы (в оффлайн)
    #39761189
Фотография aamazur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousи прочую муть.
...
partitions/subpartitions
long columns
IOT overflow
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / готовый скрипт для defragmentation оракл.базы (в оффлайн)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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