Differenza tra Elimina e Tronca

Elimina vs Tronca

Entrambi 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) e rimuove 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, rimuove tutti i dati nella tabella. Truncate è un'istruzione DDL (Data Definition Language) e rimuove tutti i dati dalla tabella. Entrambi questi comandi non distruggono la struttura della tabella e i riferimenti alla tabella e solo i dati vengono rimossi secondo necessità.

Elimina istruzione

L'istruzione Delete consente all'utente di rimuovere i dati da una tabella esistente in un database in base a una condizione specificata e la clausola Where viene utilizzata per determinare questa condizione. Il comando delete viene definito come un'esecuzione registrata, poiché elimina solo una riga alla volta e mantiene una voce per ogni eliminazione di riga nel log delle transazioni. Quindi, questo fa sì che l'operazione rallenti. Elimina è un'istruzione DML e quindi non viene commesso automaticamente durante l'esecuzione del comando. Pertanto, l'operazione di cancellazione può essere ripristinata per accedere nuovamente ai dati, se necessario. Dopo l'esecuzione del comando Elimina, è necessario eseguire il commit o il rollback per salvare le modifiche in modo permanente. L'istruzione delete non rimuove la struttura della tabella della tabella dal database. Inoltre non rilascia lo spazio di memoria utilizzato dalla tabella.

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

CANCELLA DA

o

CANCELLARE DA DOVE

Dichiarazione troncata

L'istruzione troncata rimuove tutti i dati da una tabella esistente in un database, ma conserva la stessa struttura di tabella, anche i vincoli di integrità, i privilegi di accesso e le relazioni con altre tabelle. Pertanto, non è necessario definire nuovamente la tabella e la struttura della tabella precedente può essere utilizzata, se l'utente desidera riutilizzare nuovamente la tabella. Tronca rimuove interi dati deallocando le pagine di dati utilizzate per conservare i dati e solo queste deallocazioni di pagina vengono mantenute nel registro delle transazioni. Pertanto, il comando truncate utilizza solo un numero inferiore di risorse del registro delle transazioni e del sistema per il funzionamento, quindi è più veloce di altri comandi correlati. Tronca è un comando DDL, quindi utilizza gli impegni automatici prima e dopo l'esecuzione dell'istruzione. Quindi, truncate non può ripristinare nuovamente i dati in alcun modo. Rilascia lo spazio di memoria utilizzato dalla tabella dopo l'esecuzione. Ma l'istruzione Truncate non può essere applicata sulle tabelle a cui fanno riferimento i vincoli di chiave esterna.

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

TABELLA DEI TRONCATI

Qual è la differenza tra Elimina e Tronca?

1. I comandi Elimina e Tronca rimuovono i dati dalle 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 rilevante o per eliminare tutte le righe senza alcuna condizione, mentre il comando Truncate può essere utilizzato solo per l'eliminazione di interi dati nella tabella.

3. Elimina è un comando DML e può eseguire il rollback dell'operazione se necessario, ma Tronca è un comando DDL, quindi è un'istruzione di commit automatico e non può essere ripristinato in alcun modo. Quindi è importante usare questo comando attentamente nella gestione del database.

4. L'operazione Troncamento consuma meno risorse di sistema e risorse del registro transazioni rispetto all'operazione Elimina, pertanto Troncare viene considerato più veloce di Elimina.

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

6. Tuttavia, Tronco non può essere utilizzato quando la tabella fa riferimento a un vincolo di chiave esterna e, in tal caso, è possibile utilizzare il comando Elimina anziché Tronca.

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