Ответ 1
Как правило, таблица перемещается в корзину (с Oracle 10g), если она отбрасывается. Однако, если также указан модификатор продувки, таблица полностью восстанавливается (полностью) из базы данных.
Я использую Oracle Database, и я немного запутался в командах Drop and Purge. На самом деле для меня оба делают то же самое. Удаляет таблицу со схемой из базы данных. В чем основное отличие этих двух?
Как правило, таблица перемещается в корзину (с Oracle 10g), если она отбрасывается. Однако, если также указан модификатор продувки, таблица полностью восстанавливается (полностью) из базы данных.
Oracle Database 10g представляет новую функцию для удаления таблиц. Когда ты отбросить таблицу, база данных не сразу освободит пространство, связанное с Таблица. Скорее, база данных переименовывает таблицу и помещает ее в корзину, где она может позже будет восстановлен с помощью инструкции FLASHBACK TABLE, если вы обнаружите, что вы упал стол по ошибке. Если вы хотите немедленно освободить пространство, связанное с таблицей в то время вы выдаете инструкцию DROP TABLE, а затем включаете предложение PURGE следующим образом. DROP TABLE сотрудники PURGE; Укажите PURGE только в том случае, если вы хотите удалить таблицу и освободить место связанных с ним за один шаг. Если вы укажете PURGE, тогда база данных не будет поместите таблицу и ее зависимые объекты в корзину. ПРИМЕЧАНИЕ. Вы не можете отменить оператор DROP TABLE с помощью PURGE , и вы не сможете восстановить таблицу, если вы отбросите ее с помощью предложения PURGE. Эта функция не была доступна в более ранних версиях.
Ссылка на статью аскета: http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:32543538041420
В основном с oracle10 все упавшие таблицы переходят в корзину, откуда они могут быть скопированы. С продувкой вы в основном пропускаете часть корзины, и вы отбрасываете таблицу без возможности отменить действие.
SQL>drop table table_name;
Эта команда удаляет таблицу с именем table_name, но внутренне она перемещается в корзину bin oracle (что похоже на удаление любого файла/папки с помощью клавиши Delete на окнах os).
Преимущества:
1. При необходимости мы сможем восстановить вышеуказанную удаленную таблицу.
Недостатками:
1. По-прежнему занимает некоторое количество памяти.
SQL>drop table table_name purge;
Эта команда полностью удаляет таблицу table_name из базы данных (которая похожа на удаление любого файла/папки с помощью клавиши Shift + Delete в ОС Windows).
Преимущества и недостатки будут процитировать выше.
Нижеприведенный оператор отбрасывает таблицу и помещает ее в корзину.
DROP TABLE emp_new;
Нижеприведенный оператор отменит таблицу и вытолкнет ее из корзины.
DROP TABLE emp_new PURGE;
Это ясно из комментария @Randy, просто чтобы добавить:
(1) Название таблицы удаления таблицы:
Без purge
таблица может быть в RECYCLEBIN или USER_RECYCLEBIN; который можно восстановить с помощью команды FLASHBACK
. Это похоже на файлы, которые мы удаляем на рабочем столе Windows, которые перемещаются в корзину и могут быть восстановлены обратно.
(2) Удаление таблицы Удаление имени таблицы:
Если Drop
дается вместе с Purge
, его табличное пространство освобождается и не может быть восстановлено. (Как Shift + Delete на рабочем столе)
Следующий пример дает практический пример:
create table test_client (val_cli integer, status varchar2(10));
drop table test_client ;
select tablespace_name from all_tables where owner = 'test' and table_name = 'TEST_CLIENT';
SELECT * FROM RECYCLEBIN where ORIGINAL_NAME='TEST_CLIENT';
SELECT * FROM USER_RECYCLEBIN where ORIGINAL_NAME='TEST_CLIENT';
FLASHBACK TABLE test_client TO BEFORE DROP;
select tablespace_name from all_tables where owner = 'test' and table_name = 'TEST_CLIENT';
drop table test_client purge;
select tablespace_name from all_tables where owner = 'test' and table_name = 'TEST_CLIENT';
удалить таблицу table_name,
Используя этот запрос, что произошло: - Как правило, таблица перемещается в корзину (по сравнению с Oracle 10g), если она отбрасывается. Но все еще занята памятью в базе данных, поэтому для освобождения памяти для другого объекта мы можем использовать предложение Purge.