I have an SQL Server 2005 database, and I tried putting indexes on the appropriate fields in order to speed up the DELETE of records from a table with millions
Try something like this to avoid bulk delete (and thereby avoid log file growth)
declare @continue bit = 1
-- delete all ids not between starting and ending ids
while @continue = 1
begin
set @continue = 0
delete top (10000) u
from u WITH (READPAST)
where
if @@ROWCOUNT > 0
set @continue = 1
end