To metoder eksisterer i SQL til tomme databasetabeller. Den ene er " SLET "-funktionen , og den anden er " trunkere . " Både bevare integriteten af bordet de tømmes , men hver forskellig i de mekanismer, der anvendes til at fjerne poster , især med hensyn til driftsformer , datagendannelse , hastighed og ressourceforbrug. "Slet" -funktionen er kategoriseret som en data manipulation sprog ( DML ) funktion , mens " truncate " hører til familien af funktioner , der beskæftiger sig med data definition sprog ( DDL ) . Betjeningstilstande
" afkorte " operation er en alt -eller- intet tilgang, som deallocates diskplads forbeholdt data i tabellen . Operationen fjerner også henvisninger til indekser. Data fortsætter med at eksistere i tabellen , indtil det er overskrevet af nye data. Omvendt " SLET " operation fjerner en post ad gangen , registrering af informationer om hver enkelt post i en transaktionsbeslutning log før dens fjernelse. "Slet" operation kræver transaktionen blive begået, mens en " truncate " implicit begår transaktionen. A " DELETE " erklæring også muligt for brugeren at betinget fjerne poster, der opfylder en række kriterier .
Data Recovery
A " afkorte " operation fjerner data fra en tabel uden at gemme nogen rollback information. Når kommandoen er udført , nyttiggørelse ikke er mulig, hvis den plads tidligere tildelt data er blevet overskrevet med nye data . Omvendt kan rollback til en tidligere tilstand i en " SLET " operation opstå, fordi hver post er forpligtet til rollback tablespace før dens fjernelse. Manglende data kan derefter udvindes fra rollback logs , forudsat at logs stadig eksisterer.
Hastighed og Ressourceforbrug
" truncate " operation er en high -speed delete operation , der kræver lidt database ressourcer på grund af den tilstand, hvor den udfører de alt-eller - intet slettefunktioner . "Slet" operationer på store datamængder , på den anden side , tage kan lang tid på grund af spørgsmålet om optagelse én række ad gangen i rollback tablespace . Som et resultat, kan den fysiske størrelse af de involverede tabeller ballon inden fjernelsen af poster skrumpe bordet tilbage til en acceptabel størrelse .
Undtagelser for referencebetingelser
" ; Trunkér "operationer kan kun ske , hvis alle fremmede nøgler er fjernet eller deaktiveret før dens fuldbyrdelse. Den samme regel gælder for "DELETE " operationer . Dette skyldes, at den regel, der pålægges databaser til at definere primære og fremmede nøgle relationer, og som præciserer, at "ingen fremmede nøgle , skal dingle . " Derfor , "vil trunkerer " og "Slet " operationer mislykkes, hvis der er en primær nøgle /fremmed nøgle begrænsning på plads.