Estoy de acuerdo con las sugerencias para agrupar sus eliminaciones en fragmentos manejables si no puede usar TRUNCATE, y me gusta la sugerencia de soltar / crear por su originalidad, pero tengo curiosidad sobre el siguiente comentario en su pregunta:
Básicamente es equivalente a una declaración TRUNCATE TABLE, excepto que no puedo usar TRUNCATE
Supongo que la razón de esta restricción tiene que ver con la seguridad que se debe otorgar para truncar directamente una tabla y el hecho de que le permitiría truncar tablas que no sean la que le preocupa.
Suponiendo que ese sea el caso, me pregunto si tener un procedimiento almacenado creado que use TRUNCATE TABLE y use "EXECUTE AS" se consideraría una alternativa viable para otorgar los derechos de seguridad necesarios para truncar la tabla directamente.
Con suerte, esto le dará la velocidad que necesita y al mismo tiempo abordará las preocupaciones de seguridad que su empresa puede tener al agregar su cuenta a la función db_ddladmin.
Otra ventaja de usar un procedimiento almacenado de esta manera es que el procedimiento almacenado en sí mismo podría bloquearse para que solo las cuentas específicas puedan usarlo.
Si por alguna razón esta no es una solución aceptable y su necesidad de eliminar los datos de esta tabla es algo que debe hacerse una vez al día / hora / etc., solicitaría que se creara un trabajo de Agente SQL para truncar la tabla a una hora programada cada día.
¡Espero que esto ayude!