Удаление табличных данных из табличного пространства в Oracle - PullRequest
1 голос
/ 11 августа 2010

Я попытался удалить данные из табличного пространства с помощью команды

DROP USER xyz CASCADE;

Я обнаружил, что пользователь был удален, но размер моего табличного пространства неуменьшилось.Мои данные из табличного пространства были удалены?Если да, как я могу это подтвердить?И почему пространство не было освобождено?

Ответы [ 2 ]

2 голосов
/ 11 августа 2010

При определенных обстоятельствах файл данных можно сжать с помощью следующей команды:

ALTER DATABASE DATAFILE 'filename2' RESIZE new_size;

Размер файла данных можно уменьшить, если в конце файла нет данных.См. " Управление табличными пространствами " для получения подробной информации.

2 голосов
/ 11 августа 2010

Oracle автоматически не сокращает файлы данных, из которых состоит табличное пространство.Oracle просто пометил пространство, которое использовалось пользовательскими сегментами XYZ (таблицами, индексами и т. П.), Свободным для использования другими сегментами пользователя.

SELECT * FROM DBA_OBJECTS WHERE OWNER = 'XYZ'; должно продемонстрировать, что пользователь XYZ больше не владеетфизические (таблицы, индексы, кластеры) или логические (последовательности, процедуры, пакеты, триггеры, типы) объекты в базе данных.

...