Diferència entre suprimir i truncar

Diferència entre suprimir i truncar
Diferència entre suprimir i truncar

Vídeo: Diferència entre suprimir i truncar

Vídeo: Diferència entre suprimir i truncar
Vídeo: What's the difference between SCP and SFTP? 2024, De novembre
Anonim

Suprimeix vs Trunca

Tant les ordres SQL (Structure Query Language), Suprimir i Truncar s'utilitzen per desfer-se de les dades emmagatzemades a les taules d'una base de dades. Suprimir és una instrucció DML (Llenguatge de manipulació de dades) i elimina algunes o totes les files d'una taula. La clàusula "Where" s'utilitza per especificar les files que s'han de suprimir i, si la clàusula Where no s'utilitza amb la instrucció Delete, elimina totes les dades de la taula. Truncar és una instrucció DDL (Llenguatge de definició de dades) i elimina dades senceres de la taula. Aquestes dues ordres no destrueixen l'estructura de la taula i les referències a la taula, i només s'eliminen les dades segons sigui necessari.

Suprimeix la declaració

La instrucció Delete permet a l'usuari eliminar dades d'una taula existent en una base de dades en funció d'una condició especificada, i la clàusula "Where" s'utilitza per determinar aquesta condició. L'ordre de supressió es coneix com a execució registrada, perquè només elimina una fila alhora i manté una entrada per a cada supressió de fila al registre de transaccions. Per tant, això fa que l'operació sigui més lenta. Delete és una instrucció DML i, per tant, no es confirma automàticament mentre s'executa l'ordre. Per tant, l'operació de supressió es pot revertir per accedir de nou a les dades, si és necessari. Després de l'execució de l'ordre Delete, s'ha de confirmar o revertir per desar els canvis de manera permanent. La instrucció Delete no elimina l'estructura de la taula de la base de dades. Tampoc no desassigna l'espai de memòria utilitzat per la taula.

La sintaxi típica per a l'ordre Suprimeix s'indica a continuació.

SUPRIMIR DE

o

SUPRIMIR D'ON

Truncate Statement

La instrucció Truncate elimina totes les dades d'una taula existent en una base de dades, però conserva la mateixa estructura de la taula, també les restriccions d'integritat, els privilegis d'accés i les relacions amb altres taules. Per tant, no és necessari tornar a definir la taula i es pot utilitzar l'estructura antiga de la taula si l'usuari vol reutilitzar la taula. Truncate elimina dades senceres desassignant les pàgines de dades utilitzades per conservar les dades, i només aquestes desassignacions de pàgines es conserven al registre de transaccions. Per tant, l'ordre trunca només utilitza menys recursos del sistema i del registre de transaccions per al seu funcionament, de manera que és més ràpid que altres ordres relacionades. Truncar és una ordre DDL, de manera que utilitza compromisos automàtics abans i després de l'execució de la instrucció. Per tant, truncate no pot tornar a retrocedir les dades de cap manera. Allibera l'espai de memòria utilitzat per la taula després de l'execució. Però la instrucció Truncate no es pot aplicar a les taules a les quals fan referència les restriccions de clau estrangera.

El següent és la sintaxi habitual per a la instrucció Truncate.

TRUNCAR LA TAULA

Quina diferència hi ha entre Suprimir i Truncar?

1. Les ordres Suprimir i Truncar eliminen dades de les taules existents en una base de dades sense danyar l'estructura de la taula o altres referències a la taula.

2. Tanmateix, l'ordre Suprimeix només es pot utilitzar per suprimir files específiques d'una taula utilitzant una condició rellevant, o per suprimir totes les files sense cap condició, mentre que l'ordre Truncada només es pot utilitzar per suprimir dades senceres de la taula.

3. Suprimeix és una ordre DML i pot revertir l'operació si cal, però Truncate és una ordre DDL, de manera que és una declaració de confirmació automàtica i no es pot revertir de cap manera. Per tant, és important utilitzar aquesta ordre amb cura en la gestió de bases de dades.

4. L'operació de truncada consumeix menys recursos del sistema i de registre de transaccions que l'operació de supressió; per tant, es considera que l'operació de truncada és més ràpida que la de supressió.

5. A més, Delete no desassigna l'espai utilitzat per la taula, mentre que Truncate allibera l'espai utilitzat després de l'execució, de manera que Delete no és eficient en cas d'eliminar totes les dades d'una taula de base de dades.

6. No obstant això, no es pot utilitzar Truncada quan una restricció de clau estrangera fa referència a la taula i, en aquest cas, es pot utilitzar l'ordre Suprimeix en comptes de Truncar.

7. Finalment, ambdues ordres tenen avantatges i també desavantatges a l'hora d'aplicar-les als sistemes de gestió de bases de dades i l'usuari ha de ser conscient d'utilitzar aquestes ordres adequadament per aconseguir bons resultats.

Recomanat: