вернуть место после большого удаления в оракуле - PullRequest
9 голосов
/ 24 февраля 2012

В моем приложении мы загрузили огромные данные. Если любые неправильно загруженные данные, то мы можем удалить данные. Итак, какие данные удалили это пространство, когда будут восстанавливать данные?. Есть ли какое-либо влияние на производительность? пробел после большого удаления в oracle?. Как вернуть пробел?

Ответы [ 4 ]

14 голосов
/ 24 февраля 2012

В Oracle удаление данных не приводит к автоматическому освобождению дискового пространства.База данных будет хранить свое хранилище, пока вы не выполните что-то административное для табличного пространства.Ожидается, что это приведет к тому, что если вам понадобится хранилище за один раз, вам, вероятно, понадобится это снова, и поэтому было бы более эффективно просто сохранить распределение.

Что касается влияния на производительность, меньше данныхпроцесс обычно заставляет запросы идти быстрее.:)

Чтобы освободить место, у вас есть несколько вариантов. Эта статья из ORACLE-BASE достаточно подробно описывает эту ситуацию.

Кроме того, зачем вам вставлять данные, а потом определять, что это «плохо», а затем удалять их?Не лучше ли избежать ввода данных с самого начала?

3 голосов
/ 24 февраля 2012

Вам нужно исследовать High Water Mark (HWM).

По сути это максимальное количество блоков, которое когда-либо использовалось конкретной таблицей, если вы загружаете большойобъем данных, которые вы можете увеличить HWM, удаление этих записей не уменьшает HWM.

Здесь - отличная статья о том, как настроить HWM и, если вы понимаете,если вы думаете, что это может повлиять на вашу среду, тогда воспользуйтесь советами, которые включены в него, чтобы снизить ваш HWM.

Надеюсь, это поможет ...

0 голосов
/ 16 февраля 2016

Я знаю, что это старый вопрос, но для будущих ссылок:

  • УДАЛИТЬ пустую таблицу, но пространство уже "заблокировано" для будущих заполнений
  • TRUNCATE TABLE делают свое дело (вам нужно отключить все внешние ключи, ссылающиеся на таблицу, чтобы работать).
0 голосов
/ 24 февраля 2012

Нет способа вернуть место после удаления. но если после удаления размер оставшихся данных относительно невелик, то создайте новую таблицу с данными, удалите старую таблицу и переименуйте новую таблицу в старое имя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...