169 похожих чатов

Не админ Oracle, так по мелочи. есть Oracle Database 11g Release

11.2.0.4.0.
В ней по создавали кучи файлов данных tablespace по 32 гига каждый.

На сейчас провели частичную очистку таблиц в tablespace, теперь таблица объемом 200 гиг равна 24 гига, другие таблицы в tablespace все вместе не более 30 гигов.

Вопрос, как избавится от лишних файлов данных в tablespace ?

11 ответов

16 просмотров

Этот SQL попробуйте запустить. Сам по себе он ничего не меняет. Но в выводе его есть команды.

Ildar Garaev
Этот SQL попробуйте запустить. Сам по себе он ниче...

ну собственно про это Егор и говорил. один экстент в конце на hwm, дырка размером терабайт в середине - и без мува вы ничего с ней не сделаете

Kirill Leontev
ну собственно про это Егор и говорил. один экстент...

Да согласен. Но для начала надо оценить реалии.

Ildar Garaev
Да согласен. Но для начала надо оценить реалии.

я делал простой union по dba_extents и dba_free_space с сортировкой. там прямо визуально эти дыры видно.

Ildar Garaev
Поделитесь SQL запросом ?

как до компьютера доберусь

Я б ещё запланировал апгрейд до актуальной версии СУБД. Например, до 19c С 12 версии и выше появилось множество опций по онлайн-перемещению объектов. Не нужен даунтайм для проведения процедур по уменьшению места.

Ildar Garaev
Добрались?

добирался, отправить забыл 🤣 что-то типа такого (работает медленно): with all_space as ( select owner ||'.' || segment_name || nullif('.' || partition_name, '.') full_segment_name, tablespace_name, extent_id, owner, segment_name, partition_name, segment_type, file_id, block_id, blocks from dba_extents e union all select null, tablespace_name, null, null, null, null, null, file_id, block_id, blocks from dba_free_space ), contiguous_space as ( select s.tablespace_name, s.owner, s.segment_name, s.partition_name, s.segment_type, s.file_id, count(*) allocated_extents, min(s.block_id) first_block, sum(s.blocks) total_blocks from ( select s.*, sum(s.sog) over ( partition by s.tablespace_name, s.file_id order by s.block_id ) group_id from ( select s.*, decode( full_segment_name, lag(full_segment_name, 1, null) over ( partition by s.tablespace_name, s.file_id order by s.block_id ), 0, 1 ) sog from all_space s ) s ) s group by s.group_id, s.tablespace_name, s.owner, s.segment_name, s.partition_name, s.segment_type, s.file_id ) select * from contiguous_space --where tablespace_name = 'USERS' order by tablespace_name, file_id, first_block /

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта