Differenza tra eliminazione e troncamento

Anonim

Cancella vs Truncate

I comandi SQL (Structure Query Language), Delete e Truncate vengono utilizzati per eliminare i dati memorizzati nelle tabelle in un database. Elimina è un'istruzione DML (Data Manipulation Language) ed elimina alcune o tutte le righe di una tabella. La clausola Where viene utilizzata per specificare le righe che devono essere eliminate e se la clausola Where non viene utilizzata con l'istruzione Delete, elimina tutti i dati della tabella. Truncate è un'istruzione DDL (Data Definition Language) ed elimina i dati interi dalla tabella. Entrambi questi comandi non distruggono la struttura della tabella ei riferimenti alla tabella e solo i dati vengono rimossi se necessario.

Cancella istruzione

Elimina istruzione consente all'utente di rimuovere i dati da una tabella esistente in un database basato su una condizione specificata e la clausola Where dove viene utilizzata per determinare questa condizione. Il comando Elimina si riferisce come un'esecuzione eseguita, perché elimina solo una riga alla volta e mantiene una voce per ogni cancellazione di riga nel registro delle transazioni. Quindi, questo provoca l'operazione più lenta. L'eliminazione è un'istruzione DML e quindi non viene eseguita automaticamente durante l'esecuzione del comando. Di conseguenza, l'operazione di cancellazione può essere nuovamente ripresa per accedere nuovamente ai dati, se necessario. Dopo l'esecuzione del comando Elimina, deve essere eseguito o ripristinato per salvare le modifiche in modo permanente. Elimina l'istruzione non rimuove la struttura di tabella della tabella dal database. Inoltre non deallocate lo spazio di memoria utilizzato dalla tabella.

La sintassi tipica per il comando Delete è riportata di seguito.

ELIMINA DA

o

ELIMINA DOVE

Dichiarazione di tronco

L'istruzione Truncate rimuove tutti i dati da una tabella esistente in un database ma conserva la stessa struttura della tabella, anche i vincoli di integrità, i privilegi di accesso ei rapporti con altri tavoli. Quindi, non è necessario definire nuovamente la tabella e la vecchia struttura di tabella può essere utilizzata se l'utente desidera riutilizzare nuovamente la tabella. Truncate rimuove interi dati disallocando le pagine di dati utilizzate per mantenere i dati e solo le deallocazioni della pagina vengono conservate nel registro delle transazioni. Di conseguenza, il comando troncamento utilizza solo meno risorse di log di sistema e di transazioni per l'operazione, quindi è più veloce di altri comandi correlati. Truncate è un comando DDL, quindi utilizza impegni automatici prima e dopo l'esecuzione dell'istruzione. Quindi, il tronco non riesce a riavvolgere i dati in alcun modo. Espande lo spazio di memoria utilizzato dalla tabella dopo l'esecuzione. Ma l'istruzione di Truncate non può essere applicata nelle tabelle che vengono citate da vincoli di chiave straniera.

Di seguito è riportata la sintassi comune per l'istruzione Truncate.

TABELLA TRUNCATE

Qual è la differenza tra Cancella e Truncate?

1. Comandi di cancellazione e tronco rimuove dati da tabelle esistenti in un database senza danneggiare la struttura della tabella o altri riferimenti alla tabella.

2. Tuttavia, il comando Elimina può essere utilizzato per eliminare righe specifiche solo in una tabella utilizzando una condizione pertinente o per eliminare tutte le righe senza alcuna condizione, mentre il comando Truncate può essere utilizzato solo per eliminare i dati interi nella tabella.

3. Elimina è un comando DML e può riavvolgere l'operazione se necessario, ma Truncate è un comando DDL, quindi è un'istruzione di commit automatico e non può essere rimessa in alcun modo. Quindi è importante utilizzare questo comando con attenzione nella gestione del database.

4. L'operazione di Truncate consuma meno risorse di sistema e risorse di registro delle transazioni rispetto all'operazione di cancellazione, per cui Truncate è considerato più veloce di quanto eliminato.

5. Inoltre, l'eliminazione non deallora lo spazio utilizzato dalla tabella, mentre Truncate libera lo spazio utilizzato dopo l'esecuzione, quindi l'eliminazione non è efficiente in caso di eliminazione di tutti i dati da una tabella di database.

6. Tuttavia, il Truncate non è autorizzato a utilizzare quando la tabella è fatta riferimento da un vincolo di chiave straniera e in quel caso è possibile utilizzare il comando Elimina anziché Truncate.

7. Infine, entrambi questi comandi hanno vantaggi e anche svantaggi nell'applicazione nei sistemi di gestione dei database e l'utente deve essere consapevole dell'uso di questi comandi in modo appropriato per ottenere buoni risultati.