powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Свободное место в табличных пространствах
12 сообщений из 12, страница 1 из 1
Свободное место в табличных пространствах
    #39291851
Paranoiac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Возник вопрос по проблеме с которой не приходилось сталкиваться(
Вопрос в следующем:из-за нехватки места на жестких дисках(новый только заказали и когда они будут хз) решили почистить немного базу от мусора,но первым делом,что было замечено это большое количество свободного места в датафайлах,т.е авторасширение у меня стоит на 100м,а вот в файлах может быть свободно по 23Гб, к примеру,то есть файл занимает физически на диске порядка 25Гб,а в нем данных на 2Гб,никаких больших удалений данных вроде как не производилось,как такое могло произойти и каков выход - импорт/экспорт данных из табличного пространства через удаление датафайлов,чтобы подвинуть данные в начало?
Код: plsql
1.
2.
3.
4.
SQL> select sum(bytes)/1024/1024 from dba_data_files where file_id=11;
SUM(BYTES)/1024/1024
--------------------
               25500



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
with s as (select max(block_id) maxb,file_id from dba_extents group by file_id)
select sum(f.bytes)/1024/1024,f.file_id from dba_free_space f,dba_data_files dd
,s where f.block_id>s.maxb and 
f.file_id=s.file_id
and dd.file_id=f.file_id
and dd.file_id=11
group by f.file_id

SUM(F.BYTES)/1024/1024    FILE_ID
---------------------- ----------
              2349.375         11


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
with s as (select max(block_id) maxb,file_id from dba_extents group by file_id)
select sum(f.bytes)/1024/1024,f.file_id from dba_free_space f,dba_data_files dd
/*,s where f.block_id>s.maxb and 
f.file_id=s.file_id*/
where dd.file_id=f.file_id
and dd.file_id=11
group by f.file_id

SUM(F.BYTES)/1024/1024    FILE_ID
---------------------- ----------
             23251.875         11



Заранее спасибо
...
Рейтинг: 0 / 0
Свободное место в табличных пространствах
    #39291863
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Paranoiac,
stff shrink
...
Рейтинг: 0 / 0
Свободное место в табличных пространствах
    #39291875
Paranoiac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123йй,

shrink чего? поясни,пжл
у меня не временное табличное пространство,чтобы его можно было шринкать
...
Рейтинг: 0 / 0
Свободное место в табличных пространствах
    #39291888
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Paranoiacshrink чего? поясни,пжл
таблицы
...
Рейтинг: 0 / 0
Свободное место в табличных пространствах
    #39291900
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
alter table <таблица> shrink space compact cascade

alter table <таблица> shrink space cascade
...
Рейтинг: 0 / 0
Свободное место в табличных пространствах
    #39291920
Paranoiac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я что-то совсем не въезжаю,а зачем мне делать шринк таблиц,у меня есть свободное место в датафайле,находится оно не в конце датафайла,шринк не гарантирует, насколько я знаю,расположение блоков в начало датафайла,а лишь располагает файлы упорядочено, убирая "пустоты" в сегментах
...
Рейтинг: 0 / 0
Свободное место в табличных пространствах
    #39291924
Paranoiac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
* лишь располагает файлы упорядочено,

блоки
...
Рейтинг: 0 / 0
Свободное место в табличных пространствах
    #39291957
Q.Tarantino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала надо выяснить что там за объекты то...
...
Рейтинг: 0 / 0
Свободное место в табличных пространствах
    #39291961
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторфайл занимает физически на диске порядка 25Гб,а в нем данных на 2Гб,никаких больших удалений данных вроде как не производилось,как такое могло произойти
pctfree, pctused? может там условно 1 запись на блок?
...
Рейтинг: 0 / 0
Свободное место в табличных пространствах
    #39291994
Paranoiac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня ASSM,а pctfree - 10
...
Рейтинг: 0 / 0
Свободное место в табличных пространствах
    #39292069
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select max(initial_extent)/(1024*1024) Mb from dba_tables
select owner, table_name, initial_extent from dba_tables where initial_extent > NNN_мегабайт*1024*1024
...
Рейтинг: 0 / 0
Свободное место в табличных пространствах
    #39292172
Гостьйцук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уменьшить размер файла
Код: plsql
1.
alter database datafile 'мой любимый файл' resize мой_любимый_размер_цифрамиM;



Файл не уменьшается так как содержит данные выше уменьшаемой отметки (pardonnez mon français)
Посмотреть че там за сегменты выше отметки можно так
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
with
segs as (
  select e.tablespace_name, e.segment_name, max(e.block_id + e.blocks - 1) last_block, sum(e.bytes) / 1048576 segment_size_mb
  from dba_extents e
  group by e.tablespace_name, e.segment_name
),
last_segs as (
  select t.tablespace_name, s.segment_name, s.last_block, s.last_block * t.block_size / 1048576 "Mb from begining", s.segment_size_mb,
           row_number() over (partition by t.tablespace_name order by s.last_block desc) num_of_last_segs
  from segs s
  join dba_tablespaces t
  on (s.tablespace_name = t.tablespace_name)
)
select *
from last_segs
where num_of_last_segs <= 3
order by tablespace_name, last_block desc
;
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Свободное место в табличных пространствах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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