Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
ДваждыДва Member Откуда: Сообщений: 31 |
Добрый день. Есть огромная таблица, которая секционирована и ее секции лежат в разных файловых группах. Секционирована она по годам. Надо как-то удалить старые файлы, соответствующие наиболее старым файловым группам. Подскажите пожалуйста как это правильно сделать? |
26 ноя 18, 13:33 [21744902] Ответить | Цитировать Сообщить модератору |
ДваждыДва Member Откуда: Сообщений: 31 |
обычный DELETE будет выполняться бесконечно долго. |
26 ноя 18, 13:34 [21744903] Ответить | Цитировать Сообщить модератору |
ДваждыДва Member Откуда: Сообщений: 31 |
Подозраваю что файловые группы можно как-то по-другому удалить. |
26 ноя 18, 13:35 [21744905] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37155 |
Секции можно транкейтить. На более новых версия сразу, на более старых -- через свитч в таблицу. |
26 ноя 18, 13:37 [21744909] Ответить | Цитировать Сообщить модератору |
AlanDenton Member [скрыт] Откуда: Сообщений: 1004 |
Если есть SQL Server 2016 то там можно делать TRUNCATE выбранных секций. Если версия ниже то переключаете секцию на пустую таблицу с идентичной структурой столбцов и после удаляете эту таблицу. |
26 ноя 18, 13:37 [21744910] Ответить | Цитировать Сообщить модератору |
ДваждыДва Member Откуда: Сообщений: 31 |
Microsoft SQL Server 2008 R2 (SP3) Enterprise Edition Сергей, если не сложно, можете ссылочку дать как это делать? Я пока тоже поищу.... |
||
26 ноя 18, 13:39 [21744916] Ответить | Цитировать Сообщить модератору |
ДваждыДва Member Откуда: Сообщений: 31 |
Да, версия ниже. Буду очень благодарен за пример. |
||
26 ноя 18, 13:40 [21744918] Ответить | Цитировать Сообщить модератору |
AlanDenton Member [скрыт] Откуда: Сообщений: 1004 |
https://github.com/sergeysyrovatchenko/SQLSaturday/blob/master/DatabaseSizeTips/24 - cycle switching - db.sql https://github.com/sergeysyrovatchenko/SQLSaturday/blob/master/DatabaseSizeTips/25 - cycle switching - test.sql https://github.com/sergeysyrovatchenko/SQLSaturday/blob/master/DatabaseSizeTips/26 - truncate partition.sql |
||
26 ноя 18, 13:56 [21744944] Ответить | Цитировать Сообщить модератору |
ДваждыДва Member Откуда: Сообщений: 31 |
Ого... Спасибо! |
||||
26 ноя 18, 14:00 [21744954] Ответить | Цитировать Сообщить модератору |
ДваждыДва Member Откуда: Сообщений: 31 |
А сработает ли это в 2008-м? TRUNCATE TABLE dbo.WordMention WITH (PARTITIONS (1)) |
||||
26 ноя 18, 14:02 [21744958] Ответить | Цитировать Сообщить модератору |
AlanDenton Member [скрыт] Откуда: Сообщений: 1004 |
Нет, только начиная с 2016. Примеры по ссылкам что выше скидывал. Смысл тот же просто больше кода |
||
26 ноя 18, 14:04 [21744962] Ответить | Цитировать Сообщить модератору |
ДваждыДва Member Откуда: Сообщений: 31 |
Спасибо. Разбираюсь. А подскажите, откуда тут при переключении цифра 2 взялась? (обвел её). Никак не могу понять ![]() К сообщению приложен файл. Размер - 78Kb |
||||
26 ноя 18, 14:50 [21745039] Ответить | Цитировать Сообщить модератору |
Konst_One Member Откуда: Сообщений: 11568 |
col1 int
, очевидно в примере партиция для значения 2
|
26 ноя 18, 14:58 [21745050] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
|
||||
26 ноя 18, 18:38 [21745304] Ответить | Цитировать Сообщить модератору |
ДваждыДва Member Откуда: Сообщений: 31 |
Спасибо. |
||||||
26 ноя 18, 19:15 [21745342] Ответить | Цитировать Сообщить модератору |
ДваждыДва Member Откуда: Сообщений: 31 |
Что-то не получается секцию переключить на другую таблицу:ALTER TABLE t1 SWITCH PARTITION 2 TO t2 ALTER TABLE SWITCH statement failed. Source and target partitions have different values for the DATA_COMPRESSION option. |
26 ноя 18, 19:16 [21745347] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37155 |
Ну так надо компрессию такую же для таблицы t2 было делать, как и для секции. |
26 ноя 18, 20:29 [21745414] Ответить | Цитировать Сообщить модератору |
ДваждыДва Member Откуда: Сообщений: 31 |
Сделал, заработало, спасибо :) |
||
27 ноя 18, 10:34 [21745778] Ответить | Цитировать Сообщить модератору |
ДваждыДва Member Откуда: Сообщений: 31 |
Еще такой вопрос есть. На таблицу ссылаются FK (ON DELETE ON UPDATE CASCADE) другие таблицы. Если секцию переключить и сделать TRUNCATE новой таблицы, из зависимых таблиц удаляться данные? |
27 ноя 18, 10:36 [21745779] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |