2011-10-10 15 views
14

Sto usando Oracle Database e sono un po 'confuso riguardo i comandi Drop e Purge. In effetti, per me, entrambi fanno la stessa cosa. Rimuove la tabella con lo schema dal database. Qual è la principale differenza tra questi due?Differenza tra drop e drop Purge in Oracle

  1. Drop Table Nome tabella;
  2. Drop Table Nome tabella Spurgo;
+5

Non si tratta di una domanda "Leggi il manuale"? E come può essere sia MySQL che Oracle? – MatBailie

+0

@Dems "Leggi il manuale" ... come la maggior parte delle domande Oracle su Stackoverflow, purtroppo. –

risposta

30

Normalmente, una tabella viene spostata nel cestino (a partire da Oracle 10g), se viene rilasciata. Tuttavia, se viene specificato anche il modificatore di spurgo, la tabella non è (completamente) completamente eliminata dal database.

+2

+1 Vorrei aggiungere che se non si aggiunge 'purge' la tabella continuerà a utilizzare lo spazio nel cestino, quindi se si sta pulendo è meglio usarlo. – Ben

+1

L'ID concorda con Ben sull'uso dello spazio, l'uso dell'eliminazione o ho visto una tabella troncata seguita da una goccia per avere un effetto simile. – tbone

6

Oracle Database 10g introduce una nuova funzionalità per l'eliminazione delle tabelle. Quando si rilascia una tabella , il database non rilascia immediatamente lo spazio associato alla tabella . Piuttosto, il database rinomina la tabella e la colloca in un cestino, dove può essere ripristinata in seguito con l'istruzione FLASHBACK TABLE se si scopre che si è verificato un errore nella tabella . Se si desidera rilasciare immediatamente lo spazio associato alla tabella al momento si rilascia l'istruzione DROP TABLE, quindi includere la clausola PURGE come segue. DROP TABLE Dipendenti PURGE; Specificare PURGE solo se si desidera rilasciare la tabella e rilasciare lo spazio associato ad esso in un unico passaggio. Se si specifica SPURGO, il database non riporta nella tabella e gli oggetti dipendenti nel cestino. NOTA: non è possibile eseguire il rollback di un'istruzione DROP TABLE con la clausola PURGE e non è possibile ripristinare la tabella se la si elimina con la clausola PURGE. Questa funzione non era disponibile nelle versioni precedenti.

-1

drop table table_name spurgo;

Utilizzando questa query quello che è successo: - Normalmente, una tabella viene spostato nel cestino (come di Oracle 10g), se è dropped.But ancora occupata la memoria in database in modo da liberare la memoria per un altro oggetto possiamo usare la clausola Purge.

0
SQL>drop table table_name; 

Questo comando cancella la tabella denominata nome_tabella, ma internamente viene spostato nel cestino di Oracle (che è solo simile a cancellare qualsiasi file/cartella utilizzando Elimina tasto sul sistema operativo Windows).
Vantaggi:
1. Se necessario, sarà possibile ripristinare la tabella eliminata sopra.
Svantaggi:
1. Occupa ancora una certa quantità di memoria.

SQL>drop table table_name purge; 

Questo comando cancella la tabella nome_tabella completamente dal database (che è simile a cancellare qualsiasi file/cartella utilizzando Maiusc +Elimina tasto sul sistema operativo Windows).

I vantaggi e gli svantaggi saranno i seguenti.

0

La seguente istruzione lascerà cadere la tabella e la posizionerà nel cestino.

DROP TABLE emp_new;

La seguente istruzione farà cadere la tabella e lo svuoterà dal cestino.

DROP TABLE emp_new SPURGO;

+0

Perché è stato votato in ribasso? Qualche commento avrebbe aiutato? A me sembra corretto .. – nanosoft