Разница между удалением и сбросом в Oracle - PullRequest
21 голосов
/ 10 октября 2011

Я использую базу данных Oracle, и меня немного смущают команды удаления и очистки.На самом деле для меня оба делают одно и то же.Удаляет таблицу со схемой из базы данных.В чем основное различие между этими двумя?

  1. Имя таблицы удаления таблицы;
  2. Удаление таблицы названия таблицы Очистка;

Ответы [ 7 ]

41 голосов
/ 10 октября 2011

Обычно таблица перемещается в корзину (по состоянию на Oracle 10g), если она отбрасывается. Однако, если также указан модификатор очистки, таблица безвозвратно (полностью) удаляется из базы данных.

6 голосов
/ 29 августа 2013

Oracle Database 10g представляет новую функцию удаления таблиц. Когда ты удалить таблицу, база данных не сразу освобождает пространство, связанное с Таблица. Скорее, база данных переименовывает таблицу и помещает ее в корзину, где она может позже будет восстановлено с помощью инструкции FLASHBACK TABLE, если вы обнаружите, что вы сбросил таблицу по ошибке. Если вы хотите немедленно освободить пространство, связанное с таблицей в то время вы выполняете оператор DROP TABLE, затем включаете предложение PURGE следующим образом. DROP TABLE сотрудники PURGE; Укажите PURGE, только если вы хотите сбросить таблицу и освободить место связано с этим в один шаг. Если вы укажете PURGE, то база данных не поместите таблицу и ее зависимые объекты в корзину. ПРИМЕЧАНИЕ. Вы не можете откатить оператор DROP TABLE с помощью PURGE. и вы не сможете восстановить таблицу, если отбросите ее с помощью предложения PURGE. это функция не была доступна в более ранних выпусках.

3 голосов
/ 10 октября 2011

Ссылка на статью Asktom: http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:32543538041420

В основном с oracle10 все удаленные таблицы попадают в корзину, откуда их можно вынуть.При очистке вы в основном пропускаете часть корзины и отбрасываете таблицу без возможности отменить действие.

1 голос
/ 11 июля 2019

Понятно из комментария @Randy, просто добавлю:

(1) Drop Table Tablename:

Без purge таблица может быть в RECYCLEBIN или USER_RECYCLEBIN; который можно восстановить с помощью команды FLASHBACK. Это похоже на файлы, которые мы удаляем на рабочем столе Windows, которые перемещаются в корзину и могут быть восстановлены обратно.

(2) Drop Table Tablename Purge:

Если 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';
1 голос
/ 03 декабря 2014

Приведенный ниже оператор удалит таблицу и поместит ее в корзину.

DROP TABLE emp_new;

Приведенный ниже оператор удалит таблицу и также вытащит ее из корзины.

DROP TABLE emp_new PURGE;

1 голос
/ 26 февраля 2014
SQL>drop table table_name;

Эта команда удаляет таблицу с именем table_name, но внутренне она перемещается в корзину оракула (что аналогично удалению любого файла / папки с помощью клавиши Delete на ОС Windows).
Преимущества
1. Мы сможем восстановить удаленную таблицу, если потребуется.
1010 * Недостатки *:
1. По-прежнему занимает некоторое количество памяти.

SQL>drop table table_name purge;

Эта команда полностью удаляет таблицу table_name из базы данных (что аналогично удалению любого файла / папки с использованием Shift + Delete key в ОС Windows).

Преимущества и недостатки будут обратными вышеперечисленным.

0 голосов
/ 20 февраля 2014

удаление таблицы table_name purge;

С помощью этого запроса, что случилось: - Обычно таблица перемещается в корзину (по состоянию на Oracle 10g), если она отбрасывается. Но все еще занимала память в базе данных, поэтому для освобождения памяти для другого объекта мы можем использовать предложение Purge.

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