powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Оптимизировние места в Tablespace
10 сообщений из 35, страница 2 из 2
Оптимизировние места в Tablespace
    #39652714
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-andrey_anonymousСначала все мувил, когда в хвосте накапливался свободный терабайтНу на DMT, может быть LMT до 10г такое прокатывало. В 11г второй move предпочитает использовать недавно освободившиеся экстенты.
На 12.1 (exadata) прокатило :)
Правда, там bigfile TS было.
"Не прокатило" у коллег на том же сервере, но причина была в recyclebin.
...
Рейтинг: 0 / 0
Оптимизировние места в Tablespace
    #39652725
maverick2104
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,

Я как понял тот скрипт показывает макс значение ресайза для каждого датафайла , и он режет файл до допустимого значения , он сам перенаправляет файлы в начале датафайлы чтоб не стерлись , или это я должен сделать ?
...
Рейтинг: 0 / 0
Оптимизировние места в Tablespace
    #39653003
KoTTT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousНа 12.1 (exadata) прокатило :)
А в 12 (вроде бы) move уже как раз предпочитает двигать сегменты в начало датафайла.
Или в 12.2?
...
Рейтинг: 0 / 0
Оптимизировние места в Tablespace
    #39653040
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-andrey_anonymousСначала все мувил, когда в хвосте накапливался свободный терабайтНу на DMT, может быть LMT до 10г такое прокатывало. В 11г второй move предпочитает использовать недавно освободившиеся экстенты.По крайней мере на 11.2.0.3 такого поведения не наблюдалось -- всегда едет в начало файла (ов)
...
Рейтинг: 0 / 0
Оптимизировние места в Tablespace
    #39653122
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maverick2104andrey_anonymous,
Я как понял тот скрипт показывает макс значение ресайза для каждого датафайла , и он режет файл до допустимого значения , он сам перенаправляет файлы в начале датафайлы чтоб не стерлись , или это я должен сделать ?
Уменьшение размера табличного пространства
...
Рейтинг: 0 / 0
Оптимизировние места в Tablespace
    #39653168
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
12.1. extent_management=local, allocation_type=system, bigfile=yes.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create table testmove (n number, s varchar2(1000));

insert into testmove values (1, 'one');

commit;

with s as (select file_id, min(block_id) block_id, max(blocks) max_blocks, count(*) cnt from dba_extents where owner = user and segment_name = 'TESTMOVE' group by file_id)
select 'free' who, min(fs.block_id) first_block, min(blocks) keep (dense_rank first order by fs.block_id) blocks, count(*) extents from dba_free_space fs join s on fs.file_id = s.file_id and fs.block_id < s.block_id and fs.blocks >= s.max_blocks
union all
select 'table', s.block_id, s.max_blocks, cnt from s;

alter table testmove move;

drop table testmove purge;


Таблица создалась ближе к концу датафайла, до нее в файле свободно 13ГБ, после 1.5ГБ. Первый move передвинул таблицу дальше по файлу, второй вернул взад и так по кругу.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
-- create
WHO   FIRST_BLOCK     BLOCKS    EXTENTS
----- ----------- ---------- ----------
free       207552         64       1644
table     3998744          8          1

-- 1 move
WHO   FIRST_BLOCK     BLOCKS    EXTENTS
----- ----------- ---------- ----------
free       207552         64       1645
table     3998752          8          1

-- 2 move
WHO   FIRST_BLOCK     BLOCKS    EXTENTS
----- ----------- ---------- ----------
free       207552         64       1643
table     3998744          8          1

-- 3 move
WHO   FIRST_BLOCK     BLOCKS    EXTENTS
----- ----------- ---------- ----------
free       207552         64       1644
table     3998752          8          1
...
Рейтинг: 0 / 0
Оптимизировние места в Tablespace
    #39653193
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-12.1. extent_management=local, allocation_type=system, bigfile=yes.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create table testmove (n number, s varchar2(1000));

insert into testmove values (1, 'one');

commit;

with s as (select file_id, min(block_id) block_id, max(blocks) max_blocks, count(*) cnt from dba_extents where owner = user and segment_name = 'TESTMOVE' group by file_id)
select 'free' who, min(fs.block_id) first_block, min(blocks) keep (dense_rank first order by fs.block_id) blocks, count(*) extents from dba_free_space fs join s on fs.file_id = s.file_id and fs.block_id < s.block_id and fs.blocks >= s.max_blocks
union all
select 'table', s.block_id, s.max_blocks, cnt from s;

alter table testmove move;

drop table testmove purge;


Таблица создалась ближе к концу датафайла, до нее в файле свободно 13ГБ, после 1.5ГБ. Первый move передвинул таблицу дальше по файлу, второй вернул взад и так по кругу.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
-- create
WHO   FIRST_BLOCK     BLOCKS    EXTENTS
----- ----------- ---------- ----------
free       207552         64       1644
table     3998744          8          1

-- 1 move
WHO   FIRST_BLOCK     BLOCKS    EXTENTS
----- ----------- ---------- ----------
free       207552         64       1645
table     3998752          8          1

-- 2 move
WHO   FIRST_BLOCK     BLOCKS    EXTENTS
----- ----------- ---------- ----------
free       207552         64       1643
table     3998744          8          1

-- 3 move
WHO   FIRST_BLOCK     BLOCKS    EXTENTS
----- ----------- ---------- ----------
free       207552         64       1644
table     3998752          8          1

Свободно или может быть какая-либо "корзина"?

Ну и новое поведение где-то описано или только на основании опыта?
...
Рейтинг: 0 / 0
Оптимизировние места в Tablespace
    #39653605
KoTTT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, это я про shrink вспоминал.
https://oracle-base.com/articles/misc/alter-table-shrink-space-online Prior to Oracle 12.2 a shrink operation won't necessarily move rows to blocks at the start of a datafile, so it may not be of much help if you are trying to reduce the size of a datafile. Oracle 12.2 encourages this type of shrink.
Откуда он эту информацию взял, я не знаю. В документации быстро не нашел ничего на эту тему.
...
Рейтинг: 0 / 0
Оптимизировние места в Tablespace
    #39660598
maverick2104
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе утро, спасибо за советы , решил идти по пути дефрагментации , пока что освободил около 100ГБ .

На данный момент у меня крайнии лоб сегменты , с таблицами делаю :
Код: plsql
1.
alter table table_name move lob (column_name) store as segment_name ( tablespace USERS)



Но как быть с лоб индексами ?
...
Рейтинг: 0 / 0
Оптимизировние места в Tablespace
    #39660605
maverick2104
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maverick2104Доброе утро, спасибо за советы , решил идти по пути дефрагментации , пока что освободил около 100ГБ .

На данный момент у меня крайнии лоб сегменты , с таблицами делаю :
Код: plsql
1.
alter table table_name move lob (column_name) store as segment_name ( tablespace USERS)



Но как быть с лоб индексами ?

Вот так :

Код: plsql
1.
alter table table_name move lob (column_name) store as index_name ( tablespace USERS)
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Оптимизировние места в Tablespace
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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