TRUNCATE
and CREATE AS SELECT
are much faster than deleting the whole table since they generate less redo logging.
They are, however, DDL
commands and cannot be rolled back in some systems.
However, DELETE
may still be faster if there are few rows to delete.
If half of rows are to be deleted, then most probably the first option will be faster, at least in Oracle
.