Forskjell mellom Delete og Truncate

Anonim

Slett vs Truncate

Begge SQL (Structure Query Language) kommandoer, Slett og Truncate brukes til å kvitte seg med data lagret i tabeller i en database. Slett er en DML (Data Manipulation Language) setning og det fjerner noen eller alle rader i et bord. "Where-klausulen" brukes til å spesifisere radene som skal slettes, og hvis Var-klausulen ikke brukes med Slett setning, fjerner den alle dataene i tabellen. Truncate er en DDL (Data Definition Language) setning, og den fjerner hele data fra tabellen. Begge disse kommandoene ødelegger ikke tabellstrukturen og referansene til tabellen, og bare dataene fjernes etter behov.

Slett setning

Slett setningen lar brukeren fjerne data fra et eksisterende bord i en database basert på en spesifisert tilstand, og "Where-klausulen" brukes til å bestemme denne tilstanden. Slett kommandoen refereres som en loggført utførelse, fordi den sletter bare én rad om gangen, og beholder en oppføring for hver rad sletting i transaksjonsloggen. Så dette medfører at operasjonen blir tregere. Slett er en DML-setning, og så blir det ikke automatisk forpliktet når du utfører kommandoen. Derfor kan slettoperasjonen rulles tilbake for å få tilgang til dataene igjen, hvis det er nødvendig. Etter utføring av Slett-kommandoen, bør den være forpliktet eller rullet tilbake for å lagre endringer permanent. Slett setningen fjerner ikke tabellstrukturen i tabellen fra databasen. Det fordeler heller ikke minnestasjonen som brukes av bordet.

Den typiske syntaksen for Slett-kommandoen er oppgitt nedenfor.

SLETT FRA

eller

SLETT FRA HVOR

Truncate Statement

Truncate-setningen fjerner all data fra en eksisterende tabell i en database, men den beholder samme tabellstruktur, også integritetsbegrensningene, tilgangsrettigheter og forhold til andre bordene. Så det er ikke nødvendig å definere tabellen igjen, og den gamle tabellstrukturen kan brukes hvis brukeren ønsker å gjenbruke bordet på nytt. Trunkate fjerner hele data ved å deallokere datasidene som brukes til å beholde data, og bare disse sidedistribusjonene blir holdt i transaksjonsloggen. Derfor bruker trunkate-kommandoen bare færre system- og transaksjonsloggressurser for drift, så det er raskere enn andre relaterte kommandoer. Truncate er en DDL-kommando, så den bruker automatiske forpliktelser før og etter utførelse av setningen. Derfor kan trunkate ikke rulle dataene igjen på noen måte. Det frigjør minneplass brukt av bordet etter utførelsen. Men Truncate-setningen kan ikke brukes på tabellene som er referert av utenlandske nøkkelbegrensninger.

Følgende er den vanlige syntaksen for Truncate-setningen.

TRUNCATE TABLE

Hva er forskjellen mellom Slett og Avkort?

en. Slett og avkort kommandoer fjerner data fra eksisterende tabeller i en database uten å skade tabellstrukturen eller andre referanser til tabellen.

2. Slett-kommandoen kan imidlertid bare brukes til å slette bestemte rader bare i en tabell med en relevant tilstand, eller å slette alle rader uten noen betingelse, mens kommandoen Truncate bare kan brukes til å slette hele data i tabellen.

3. Slett er en DML-kommando, og det kan rulle operasjonen om nødvendig, men Truncate er en DDL-kommando, så det er en automatisk pliktoppgave og kan ikke rulles tilbake på noen måte. Så det er viktig å bruke denne kommandoen nøye i databasehåndtering.

4. Trunkate-operasjon bruker færre systemressurser og transaksjonsloggressurser enn Slett-operasjonen, derfor anses Truncate å være raskere enn Slett.

5. Sletter heller ikke plass som brukes av tabellen, mens Truncate frigjør plassen som brukes etter kjøring, så Slett er ikke effektivt hvis du sletter hele data fra en databasetabell.

6. Truncate har imidlertid ikke lov til å bruke når tabellen refereres av en fremmednøkkelbegrensning, og i så fall kan kommandoen Slett brukes i stedet for Truncate.

7. Til slutt har begge disse kommandoene fordeler og ulemper ved å bruke dem i Database Management Systems, og brukeren bør være oppmerksom på å bruke disse kommandoene på riktig måte for å oppnå gode resultater.