[ Вопрос дня ] Есть ли смысл устранять фрагментацию для небольших таблиц?

Доброго дня, коллеги!

Работа с фрагментацией таблиц максимально подробно рассмотрена в главе “Регламентные операции СУБД” курса Ускорение и оптимизация систем на 1С:Предприятие 8.3 + подготовка на 1С:Эксперт. Тем не менее у слушателя возник вопрос по работе с фрагментацией для небольших таблиц. Тренер как всегда помог в Мастер-группе.

Вопрос

Доброго дня! Подскажите, пожалуйста, что имеется в виду, когда в видеоуроке говорится, что на маленьких таблицах фрагментация не устраняется? Раскрою вопрос: покрутил скрипт, который идёт с материалами курса. То есть вначале просто посмотрел какое количество записей выдается. Потом создал план обслуживания с инструкцией т-скуль. Запустил. И потом ещё раз посмотрел, что выдаёт часть скрипта. Собственно смущает, что количество строк после работы плана обслуживания не изменилось. Ниже кусок скрипта, который использовал для того, чтобы посмотреть, есть ли что-то фрагментированное или нет:

USE CopyBaseR;
GO
select  * from sys.dm_db_index_physical_stats(DB_ID(),null,null,null,null)
WHERE avg_fragmentation_in_percent > 10.0 AND index_id >0 0 AND page_count > 128;

Ответ

Добрый день! Устранять фрагментацию для маленьких таблиц не имеет особого смысла (они и так занимают мало места на диске). Количество строк в таблице и не должно меняться, но возможны другие изменения: данные будут расположены более оптимальным образом (как правило более плотно, небольшие “пробелы” между записями по умолчанию вставляются чтобы при вставке 1 строки не переписывать много страниц), как правило при значительной фрагментации данных количество страниц, которые занимает таблица, уменьшается.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

Я подтверждаю, что ознакомлен(а) с Пользовательским соглашением, принимаю его условия и даю свое согласие на обработку моих персональных данных.

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.