Правильное значение для коэффициента заполнения для кластерных индексов с суррогатными ключами идентификационных данных

Я использую Kaspersky, и производительность моего рабочего стола, кажется, не затронута им - если он не делает автоматическое обновление. Это - самый пуленепробиваемый антивирус, о котором я знаю и использовал.

8
задан 18 May 2019 в 19:43
2 ответа

Это зависит

Это - уравновешивание. Если Ваша таблица читается интенсивная, с не много обновлений или удаляет затем значение по умолчанию (который равняется 100), должен быть в порядке.

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

Нет никакой волшебной формулы для этого материала. (AFAIK, если там сообщен мне) Лучшая вещь сделать, имеют тестовую среду, имеют некоторую рабочую нагрузку для тестирования. Внесите изменения и посмотрите, как Ваша база данных работает с рабочей нагрузкой.

6
ответ дан 2 December 2019 в 22:52

Nick's в значительной степени исправляет.

Если Вы сделаете обновления, которые увеличивают размер записи на упакованных страницах, то Вы вызовете расщепления страницы, но кроме этого, с первичным ключом идентификационных данных ничто не собирается вызвать расщепления страницы в кластерном индексе.

(Хотя высказывание, что, существует 5 типов расщеплений страницы, которые Механизм устройства хранения данных может сделать, и не все они, вызывает фрагментацию и перемещение данных - то, которое Вы получаете, когда вставка одноатомным образом увеличивания значений идентификационных данных является концом расщепления страницы. Но я отступаю...),

Я помог многим клиентам с этим, и я записал BOL вокруг всего этого - если Вы хотите просто выбрать значение, поскольку stake-in-the-ground, 70% видели наибольший успех. Как Nick говорит, контролируйте и настройте как соответствующие.

Выбор fillfactor для любого индекса является уравновешиванием того, сколько действия происходит, который продвигает обилие страницы к 100% и как часто можно принять меры по ликвидации последствий для сброса fillfactor. Необходимо думать о том, сколько пространства будет первоначально 'потрачено впустую' на страницах, если Вы установите fillfactor действительно низко, как 50%, но снова я видел, что это является соответствующим в некоторых случаях.

Необходимо также рассмотреть, как индекс будет использоваться. Если это только для одноэлементных поисков, Вам мог бы сойти с рук более низкий fillfactor, и больше времени между восстанавливают/дефрагментируют, поскольку Вы не пропадаете зря слишком многие iOS/память от наличия большого малонаселенного кластерного индекса в памяти. Для того, чтобы сделать сканирования большого спектра, Вы хотели бы иметь fillfactor немного выше, увеличить эффективность памяти и IO.

Существует также OLTP по сравнению с вопросом о DW - обычно, DW неизменен, таким образом, индексы имели бы 100% fillfactor. OLTP является твердой частью.

После того, как Вы разобрались в кластерном индексе, помните, что nonclustereds будет необходимо уделять внимание также, поскольку они, скорее всего, будут фрагментированы.

При сбросе fillfactor помните, что у Вас есть выбор между восстановлением и дефрагментацией. ИНДЕКС DBCC INDEXDEFRAG/ALTER... РЕОРГАНИЗУЙТЕ Может сбросить fillfactor в некоторых случаях для индексов, которые плохо не фрагментируются.

Надеюсь, это поможет!

(Извините за 'сверхответ' - один из моих актуальных вопросов, написав код :-)

8
ответ дан 2 December 2019 в 22:52

Теги

Похожие вопросы