Zgadzam się z sugestiami podzielenia twoich usunięć na porcje do zarządzania, jeśli nie możesz użyć TRUNCATE, i podoba mi się sugestia upuszczenia / stworzenia ze względu na oryginalność, ale jestem ciekawa następującego komentarza w twoim pytaniu:
Jest to w zasadzie odpowiednik instrukcji TRUNCATE TABLE - z wyjątkiem tego, że nie wolno mi używać TRUNCATE
Zgaduję, że powodem tego ograniczenia jest bezpieczeństwo, które należy przyznać, aby bezpośrednio obciąć tabelę oraz fakt, że pozwoliłoby to na obcięcie tabel innych niż ten, którego dotyczy.
Zakładając, że tak jest, zastanawiam się, czy utworzenie procedury składowanej, która korzysta z TRUNCATE TABLE i używa „EXECUTE AS”, byłoby uważane za realną alternatywę dla nadania praw bezpieczeństwa niezbędnych do bezpośredniego obcinania tabeli.
Mamy nadzieję, że dzięki temu uzyskasz szybkość, której potrzebujesz, a jednocześnie rozwiążesz obawy związane z bezpieczeństwem, jakie może mieć Twoja firma, dodając konto do roli db_ddladmin.
Kolejną zaletą korzystania z procedury składowanej w ten sposób jest to, że sama procedura przechowywana może zostać zablokowana, aby mogły z niej korzystać tylko określone konta.
Jeśli z jakiegoś powodu nie jest to akceptowalne rozwiązanie i potrzeba usunięcia danych z tej tabeli jest czymś, co należy zrobić raz dziennie / godzinę / itp., Poprosiłbym o utworzenie zadania agenta SQL w celu obcięcia tabeli o zaplanowanej godzinie każdego dnia.
Mam nadzieję że to pomoże!