Использование Sybase ASE 15 для этого - у меня есть большое количество строк (до 10 милов), которые необходимо регулярно удалять из таблицы, но я хочу сохранить выбор последних добавленных данных в таблицу,так что исключается использование truncate непосредственно для таблицы.
delete from master_table where...
Использование вышеупомянутого удаления очень медленное, поэтому моя стратегия состоит в том, чтобы переместить данные, которые я хочу сохранить, во временную таблицу, обрезать главную таблицу ипереместите данные обратно из временной таблицы, т. е.
1) select * into #temp_table from master_table where date_updated > dateadd(mi, -15, getdate()) and node_type != 'X'
2) truncate table master_table
3) insert into master_table select * from #temp_table
Это достаточно хорошо - 1 и 2 имеют отличную производительность, но вставка обратно в мастер слишком медленная.
Так что мой вопрос действительно сводится к тому, есть ли быстрый способ сделать одно из:
delete from master_table where...
insert into xyz select * from...
Или я открыт для альтернативных подходов!