Forskjellen mellom sletting og avkorting

Forskjellen mellom sletting og avkorting
Forskjellen mellom sletting og avkorting

Video: Forskjellen mellom sletting og avkorting

Video: Forskjellen mellom sletting og avkorting
Video: Telnet, SSH, консоль и терминал - что это и зачем нужно? 2024, Juli
Anonim

Slett vs Truncate

Både SQL (Structure Query Language) kommandoer, Delete og Truncate brukes for å kvitte seg med data som er lagret i tabeller i en database. Slett er en DML-setning (Data Manipulation Language) og den fjerner noen eller alle radene i en tabell. ‘Where-leddet’ brukes til å spesifisere radene som kreves for å bli slettet, og hvis Where-leddet ikke brukes med Delete-setningen, fjerner den alle dataene i tabellen. Truncate er en DDL-setning (Data Definition Language), og den fjerner hele data fra tabellen. Begge disse kommandoene ødelegger ikke tabellstrukturen og referansene til tabellen, og bare dataene fjernes etter behov.

Slett erklæring

Delete-setningen lar brukeren fjerne data fra en eksisterende tabell i en database basert på en spesifisert betingelse, og ‘Where-klausulen’ brukes til å bestemme denne betingelsen. Slett-kommandoen omtales som en logget utførelse, fordi den sletter bare én rad om gangen, og beholder en oppføring for hver radsletting i transaksjonsloggen. Så dette fører til å gjøre operasjonen tregere. Slett er en DML-setning, og derfor blir den ikke automatisk begått mens kommandoen utføres. Derfor kan sletteoperasjonen rulles tilbake for å få tilgang til dataene igjen, om nødvendig. Etter utførelse av Slett-kommandoen, bør den forpliktes eller rulles tilbake for å lagre endringer permanent. Delete statement fjerner ikke tabellstrukturen til tabellen fra databasen. Den tildeler heller ikke minneplassen som brukes av tabellen.

Den typiske syntaksen for Slett-kommandoen er angitt nedenfor.

DELETE FROM

eller

DELETE FROM WHERE

Truncate Statement

Truncate-setning fjerner alle data fra en eksisterende tabell i en database, men den bevarer den samme tabellstrukturen, også integritetsbegrensningene, tilgangsrettigheter og relasjonene til andre tabeller. Så det er ikke nødvendig å definere tabellen på nytt, og den gamle tabellstrukturen kan brukes hvis brukeren ønsker å gjenbruke tabellen igjen. Truncate fjerner hele data ved å deallokere datasidene som brukes til å holde data, og bare disse sidedeallokeringene holdes i transaksjonsloggen. Derfor bruker truncate-kommandoen bare færre system- og transaksjonsloggressurser for drift, så den 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 ikke truncate rulle tilbake dataene igjen på noen måte. Den frigjør minneplass som brukes av tabellen etter kjøringen. Men Truncate-setningen kan ikke brukes på tabellene som er referert til av fremmednøkkelbegrensninger.

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

TRUNCATE TABLE

Hva er forskjellen mellom Slett og Truncate?

1. Delete- og Truncate-kommandoer fjerner data fra eksisterende tabeller i en database uten å skade tabellstrukturen eller andre referanser til tabellen.

2. Imidlertid kan Delete-kommandoen brukes til å slette spesifikke rader kun i en tabell ved bruk av en relevant betingelse, eller til å slette alle radene uten noen betingelse, mens Truncate-kommandoen kun kan brukes til å slette hele data i tabellen.

3. Delete er en DML-kommando, og den kan rulle tilbake operasjonen om nødvendig, men Truncate er en DDL-kommando, så det er en auto commit-setning og kan ikke rulles tilbake på noen måte. Så det er viktig å bruke denne kommandoen nøye i databasebehandling.

4. Truncate-operasjonen bruker færre systemressurser og transaksjonsloggressurser enn Slett-operasjonen, og derfor anses Truncate som raskere enn Slett.

5. Dessuten tildeler ikke Delete plass som brukes av tabellen, mens Truncate frigjør plassen som brukes etter utførelse, så Delete er ikke effektivt i tilfelle sletting av hele data fra en databasetabell.

6. Truncate er imidlertid ikke tillatt å bruke når tabellen refereres av en fremmednøkkelbegrensning, og i så fall kan Delete-kommandoen brukes i stedet for Truncate.

7. Til slutt har begge disse kommandoene fordeler og også ulemper ved å bruke dem i databasestyringssystemer, og brukeren bør være klar over å bruke disse kommandoene riktig for å oppnå gode resultater.

Anbefalt: