Hoi Ronald,
Sorry voor het late antwoord. Die optie "stuur mail als er een nieuw topic is" heeft weinig zin als je dan niet direct reageert en er de volgende dag zoveel nieuwe mail achter aan komt dat de mail van de eerste pagina af is...
TRUNCATE TABLE werkt sneller en is in principe beter. Het verschil tussen TRUNCATE TABLE en DELETE zonder WHERE clause (vroeg je niet, weet ik, maar vertel ik lekker toch
) is dat bij een DELETE elke verwijderde rij in de logfile wordt opgenomen, terwijl bij een TRUNCATE TABEL alleen de deallocaties van pages gelogd zijn. Dat betekent dus veel minder overhead, waardoor het sneller gaat.
Bij een DROP TABLE worden, voor zover ik weet, ook alleen de deallocaties gelogd. Wat dat betreft is er dus geen verschil. Maar wel gebeurt er vervolgens meer. Ook alle indexen en constraints verdwijnen automatisch, evenals alle triggers die op de tabel gedefinieerd zijn. En de metadata wordt uit de systeemtabellen verwijderd.
Vervolgens wordt met de CREATE TABLE die metadata weer toegevoegd, en hopelijk voer je daarna ook de ALTER TABLE, CREATE INDEX en CREATE TRIGGER opdrachten uit om ook dat te herstellen. Moet allemaal verwerkt worden, is allemaal overhead.
Kost dit veel? Nee. Normaalgesproken misschien een paar milliseconden. Niet echt een verschil om een keuze op te baseren. Dus wat blijft er dan over voor de keuze? Onderhoudbaarheid en gemak. TRUNCATE TABLE is een statement; DROP TABLE en CREATE TABLE zijn er al twee (en de tweede is vrij lang) en dan moet je daarna nog de indexen, constraints en triggers opnieuw opvoeren. Makkelijke keuze, toch?