MS SQL Server- по простому.

Фильтр по тегу: секционирование


Секционирование. Очистка больших таблиц.


 Одно из возможных применений секционирование – это обслуживание больших таблиц, такое как удаление старых данных, оставлять только актуальные.

Данный способ редко применяется , но имеет быть. В текущей статье расскажу реальную задачу, которую пришлось решить с  помощью секционирования.

  Имелась таблица логов системы, количество строк переваливало за 65 млн. строк. Необходимо было оставить только актуальные данные, при том , что таблица должна быть доступна для вставки.. Самих актуальных данных было уже более 10 млн. строк. Конечно можно было настроить задание по очистке таблицы порциями, но это и долго и «просто»).Решил использовать секционирование .

Итак, план был таков:

1) Переименовать текущую таблицу логов
2) Создать новую таблицу с именем исходной таблицы логов
3) В переименованной таблице создать секции со старыми данными и актуальными
4) Секцию с актуальными данными присоединить  к таблице логов

Но здесь есть несколько подводных камней, если заметили,   самое главное: присоединений секций к таблице возможно, если только если таблица назначения пуста,  а создание секций на таблице со 65 млн. строками займет десятки минут, и явно  таблица логов заполнится.
 Здесь я немного схитрил, я переименовывал таблицу логово два раза, второй раз после завершения создания секций , переименовывается таблица логов, создается новая таблица логов и тут идет присоединение секции к таблице.  А затем просто из второй переименованной таблицы ...
читать дальше...
добавлено: 24 июн 15 просмотры: 1267, комментарии: 0