Twee methoden bestaan in SQL om lege database tabellen . Een daarvan is de functie " DELETE " en de andere is " afkappen . " Zowel het behoud van de integriteit van de tafel is leeg , maar elke verschilt in de mechanismen die worden gebruikt om records te verwijderen , in het bijzonder met betrekking tot werkwijzen , data recovery , snelheid en het gebruik van bronnen . De functie " DELETE " wordt gecategoriseerd als een data manipulatie taal ( DML ) functie tijdens het " afkappen " behoort tot de familie van functies die te maken hebben met de Data Definition Language ( DDL ) . Werkstanden De " afkappen " operatie is een alles - of-niets- benadering die schijfruimte gereserveerd voor gegevens in de tabel deallocates . De operatie verwijdert ook verwijzingen naar indexen . Gegevens blijft bestaan in de tabel totdat deze wordt overschreven door nieuwe data . Omgekeerd , de " DELETE " operatie verwijdert een record tegelijk , het opnemen van de gegevens van elke record in een transactionele logboek voorafgaand aan de verwijdering ervan . De " DELETE " operatie vereist de transactie te worden vastgelegd , terwijl een " afkappen " impliciet verbindt de transactie . Een " DELETE " verklaring stelt de gebruiker ook voorwaardelijk records die voldoen aan een aantal criteria te verwijderen . Data Recovery A " afkappen " operatie verwijdert de gegevens van een tafel zonder opslaan enige rollback informatie . Zodra de opdracht wordt uitgevoerd , herstel is niet mogelijk als de eerder toegewezen aan de gegevens ruimte overschreven door nieuwe gegevens is geweest . Omgekeerd kan terugdraaien naar een eerdere staat in een " DELETE " operatie optreden omdat elke record wordt voorafgaand aan de verwijdering ervan inzetten voor de rollback tablespace . Ontbrekende gegevens kunnen vervolgens worden verhaald op de rollback logs , mits de logs nog steeds bestaan . Speed en Resourcegebruik De " afkappen " operatie is een high - speed delete operatie die weinig middelen database te wijten aan de wijze waarop zij het niets alles-of - delete functies vervult vereist . " DELETE " bewerkingen op grote hoeveelheden gegevens , aan de andere kant , kan veel tijd als gevolg van de kwestie van het opnemen van een rij op een moment in de rollback tablespace nemen . Daardoor kon de fysieke grootte van de betrokken tabellen ballon vóór het verwijderen van platen krimpen de tafel terug tot een acceptabele grootte . Uitzonderingen betreft verwijzingsvoorwaarden " ; TRUNCATE " operaties kunnen alleen plaatsvinden als alle foreign key constraints voorafgaand aan de uitvoering ervan worden verwijderd of uitgeschakeld . Dezelfde regel geldt voor "DELETE " operaties . Dit is te wijten aan de opgelegde databases om primaire en foreign key relaties definiëren en waarin wordt bepaald dat de regel ' geen vreemde sleutel zal bengelen . " Daarom zal " afkappen " en " DELETE " operaties mislukken als er een primaire sleutel /foreign key constraint op zijn plaats .
|