Конечно, ваш пробег будет варьироваться — это будет зависеть от того, сколько реальных записей вы очищаете от нижней части этой таблицы, но вот альтернатива.
Боковое примечание. Поскольку у вас есть поле «Date_Added», стоит ли просто сохранить дату и время последнего запуска и использовать его в предложении where для фильтрации удаляемых записей? Теперь вместо 20 000 записей разрешить Х дней в журнале... Просто мысль...
-- Поместите записи, которые мы хотим СОХРАНИТЬ, во временную папку.
-- Вы можете классифицировать хранителей по своему усмотрению.
select top 20000 * into #myTempTable from MyTable ORDER BY DateAdded DESC
-- Использование truncate не уничтожает наш файл журнала и использует меньше системных ресурсов...
truncate table MyTable
-- Верните наши "сохраненные" записи обратно в папку...
-- Это предполагает, что вы НЕ используете столбец идентификаторов -- если да, то должны
-- указать вместо этого имена полей использовать '*' и сделать что-то вроде
-- SET IDENTITY_INSERT MyTable ON
-- вставить в MyTable select field1,field2,field3 из #myTempTable
-- (я думаю, это правильно)
insert into MyTable select * from #myTempTable
- быть хорошим гражданином.
drop table #myTempTable
Надеюсь, поможет --
person
Borzio
schedule
12.11.2008