Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Delete from table  [new]
guestic
Guest
Есть большая табличка. Надо удалить уз нее 2/3 данных ~100млн записей (~50Gb). На диске при этом свободно 2 Gb. Приходится удалять по 500к записей, делать shrink и по кругу.
Можно-ли удалить сразу все?
5 янв 12, 14:47    [11861960]     Ответить | Цитировать Сообщить модератору
 Re: Delete from table  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
guestic
Есть большая табличка. Надо удалить уз нее 2/3 данных ~100млн записей (~50Gb). На диске при этом свободно 2 Gb. Приходится удалять по 500к записей, делать shrink и по кругу.
Можно-ли удалить сразу все?

1. перенести вашу нужную треть в новую таблицу ( select ... into )
2. старую удалить
3. новую переименовать
5 янв 12, 14:51    [11861988]     Ответить | Цитировать Сообщить модератору
 Re: Delete from table  [new]
Glory
Member

Откуда:
Сообщений: 104751
guestic
Приходится удалять по 500к записей, делать shrink и по кругу.

А shrink то зачем ?
5 янв 12, 14:54    [11862006]     Ответить | Цитировать Сообщить модератору
 Re: Delete from table  [new]
invm
Member

Откуда: Москва
Сообщений: 9844
Можно будет удалить сразу все, если добавите к БД еще один файл журнала, расположенный на устройстве с достаточным объемом свободного места.
Если нет такого, то переведите БД в простую модель восстановления, удаляйте по 500К и делайте chekpoint. shrink не нужен.
5 янв 12, 14:56    [11862014]     Ответить | Цитировать Сообщить модератору
 Re: Delete from table  [new]
guestic
Guest
перенести вашу нужную треть в новую таблицу

Сначала 15 гиг надо освободить

автор
А shrink то зачем ?

Чтоб место освободить и больше с каждым разом удалять

автор
если добавите к БД еще один файл журнала


Диски все забитые, можно-ли добавить журнал на сетевую шару и на сколько это тормознет процесс, если шара на канале в 100мегабит?
5 янв 12, 15:11    [11862081]     Ответить | Цитировать Сообщить модератору
 Re: Delete from table  [new]
Glory
Member

Откуда:
Сообщений: 104751
guestic
автор
А shrink то зачем ?

Чтоб место освободить и больше с каждым разом удалять

Зачем ? Сколько займет шринк времени ? И сколько он действительно даст места от файла данных ?
Вы же можете не полностью удалять данные со страницы/экстента
5 янв 12, 15:18    [11862113]     Ответить | Цитировать Сообщить модератору
 Re: Delete from table  [new]
guestic
Guest
Glory,
автор
Зачем ? Сколько займет шринк времени ? И сколько он действительно даст места от файла данных ?
Вы же можете не полностью удалять данные со страницы/экстента


Тогда подскажите, каким образом максимально освободить места после удаления ?
5 янв 12, 15:23    [11862140]     Ответить | Цитировать Сообщить модератору
 Re: Delete from table  [new]
Glory
Member

Откуда:
Сообщений: 104751
guestic
Тогда подскажите, каким образом максимально освободить места после удаления ?

Еще раз вопрос - зачем ?
На это понадобится время, за которое может успеет выполниться пара порционных удалений
5 янв 12, 16:05    [11862289]     Ответить | Цитировать Сообщить модератору
 Re: Delete from table  [new]
guestic
Guest
Glory,
автор
Еще раз вопрос - зачем ?
На это понадобится время, за которое может успеет выполниться пара порционных удалений


Данная база будет переводится в readonly. Поэтому ее надо максимально почистить и освободить место под другие задачи.
5 янв 12, 16:25    [11862344]     Ответить | Цитировать Сообщить модератору
 Re: Delete from table  [new]
Glory
Member

Откуда:
Сообщений: 104751
guestic
Данная база будет переводится в readonly. Поэтому ее надо максимально почистить и освободить место под другие задачи.

Вы точно вопрос понимаете ?
Зачем делать shrink после удаления каждой порции ?
5 янв 12, 16:56    [11862413]     Ответить | Цитировать Сообщить модератору
 Re: Delete from table  [new]
guestic
Guest
Glory,

автор
Вы точно вопрос понимаете ?
Зачем делать shrink после удаления каждой порции ?


Да чего непонятного, надо было максимально быстро почистить таблички и отдать место на диске под другой проект.
После каждого раза, места на диске увеличивалось, и получалось удалить за раз больше данных(чего не происходило после простого удаления). Возможно существует другой способ быстро удалить кучу записей при недостатке места на диске?
5 янв 12, 17:33    [11862517]     Ответить | Цитировать Сообщить модератору
 Re: Delete from table  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31986
guestic
После каждого раза, места на диске увеличивалось, и получалось удалить за раз больше данных(чего не происходило после простого удаления).
Какие то сказки рассказываете :-)

Шринк никак не может уменьшить время удаления, только увеличить

Для освобождения места шринк нужно сделать только один раз после полного удаления
6 янв 12, 13:44    [11864529]     Ответить | Цитировать Сообщить модератору
 Re: Delete from table  [new]
Massa52
Member

Откуда:
Сообщений: 388
invm
Можно будет удалить сразу все, если добавите к БД еще один файл журнала, расположенный на устройстве с достаточным объемом свободного места.
Если нет такого, то переведите БД в простую модель восстановления, удаляйте по 500К и делайте chekpoint. shrink не нужен.

Уже вроде предлагали - перевести в simple mode и тогда после удаления 500 записей chekpoint-а достаточно для shrinka, раздувшегося после удаления, log файла. Или я чего то не понимаю - тогда извиняйте.
6 янв 12, 20:04    [11865926]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить