Есть несколько концепций, которые вам необходимо знать о таблицах, прежде чем вы сможете по-настоящему понять использование пространства.Я попытаюсь дать вам 5-секундный тур ...
Таблица состоит из экстентов, они могут различаться по размеру, но давайте просто предположим, что они здесь составляют 1 МБ.
Когдавы создаете таблицу, обычно к ней добавляется 1 экстент, поэтому, хотя в таблице нет строк, она будет занимать 1 МБ.
Когда вы вставляете строки, в Oracle есть внутренний указатель для таблицы, известный как высокийводяной знак (HWM).Ниже HWM находятся отформатированные блоки данных, а над ними - неформатированные блоки.Он начинается с нуля.
Если вы возьмете новую таблицу в качестве примера и начнете вставлять строки, HWM будет двигаться вверх, давая все больше и больше этого первого экстента, который будет использоваться таблицей.Когда экстент полностью израсходован, будет выделен другой, и процесс повторяется.
Допустим, вы заполнили три экстента по 1 МБ, а затем удалили все строки - таблица пуста, но Oracle не перемещаетОтключите HWM или освободите использованные экстенты.Таким образом, таблица будет занимать 3 МБ на диске, даже если она пуста, но в ней есть 3 МБ свободного места, которое можно использовать повторно.Новые вставки будут помещаться в это пространство под HWM до тех пор, пока он снова не будет заполнен, прежде чем HWM будет снова перемещен.
Чтобы восстановить пространство, если ваша таблица использует ASSM, вы можете использовать команду:
alter table t1 shrink space;
Если вы не используете ASSM, вам нужно подумать о реорганизации таблицы, чтобы освободить место.