Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Удаление записей  [new]
Nubay
Member

Откуда:
Сообщений: 87
Нужно удалить из таблицы 0.5 миллиарда записей (после чего в ней должно остаться 100 миллионов).
Какой самый быстрый способ это сделать ?
23 июл 12, 15:02    [12902969]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей  [new]
Alexandr Kr.
Member

Откуда: Украина, Харьков
Сообщений: 165
Nubay,

Перелейте 100 млн в отдельную табличку. Транкейтните или удалите базовую. И сделайте rename вашей темповой таблички или switch.
23 июл 12, 15:05    [12903001]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37225
Сделать новую, в нее перелить ваши 100кк, старую грохнуть, новую переименовать.
Если нет, то delete порциями по чуть-чуть.
23 июл 12, 15:06    [12903007]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей  [new]
Shakill
Member

Откуда: мск
Сообщений: 1882
Nubay, а на таблице нет случаем секционирования по признаку, входящему в фильтр для удаления?
23 июл 12, 15:36    [12903299]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей  [new]
Nubay
Member

Откуда:
Сообщений: 87
Как более оптимально сделать select .. insert в новую таблицу :

BULK INSERT (bcp) в файл и из файла в новую таблицу

или

insert into ... (...)
select ... from ...

&
23 июл 12, 15:37    [12903316]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей  [new]
Nubay
Member

Откуда:
Сообщений: 87
Shakill
Nubay, а на таблице нет случаем секционирования по признаку, входящему в фильтр для удаления?

Секционирования нету :(
23 июл 12, 15:38    [12903330]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей  [new]
iap
Member

Откуда: Москва
Сообщений: 47083
Nubay
Как более оптимально сделать select .. insert в новую таблицу :

BULK INSERT (bcp) в файл и из файла в новую таблицу

или

insert into ... (...)
select ... from ...

&
SELECT ... INTO ... FROM ...
Новая таблица не должна существовать
23 июл 12, 15:53    [12903497]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей  [new]
Nubay
Member

Откуда:
Сообщений: 87
iap, Я создаю новую таблицу переношу в нее данные, делаю trunc на исходной таблице, и переименовываю новую (только что созданную таблицу)

сложно оценить время выполнения каждого из вариантов (BULK insert или просто insert) на таком большом объеме данных (100 миллионов строк), в этом и суть вопроса.
23 июл 12, 16:29    [12903880]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей  [new]
iap
Member

Откуда: Москва
Сообщений: 47083
Nubay
iap, Я создаю новую таблицу переношу в нее данные, делаю trunc на исходной таблице, и переименовываю новую (только что созданную таблицу)

сложно оценить время выполнения каждого из вариантов (BULK insert или просто insert) на таком большом объеме данных (100 миллионов строк), в этом и суть вопроса.
Дык создавайте новую таблицу сразу SELECTом INTO
Это гораздо лучше, чем INSERT в существующую (потому что почти не логируется).
23 июл 12, 17:32    [12904353]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить