Исправление фрагментации индекса в SQL Server - PullRequest
2 голосов
/ 10 июня 2011

Вот состояние фрагментации в индексированных таблицах:

enter image description here

А вот мой PageDefinition стол:

enter image description here

Любое предположение, какие возможные изменения я могу внести в это, чтобы снизить фрагментацию. Я делаю это в первый раз, так что решение с разумом будет очень полезным. Также, пожалуйста, дайте мне знать, если мне нужно добавить некоторые подробности здесь.

Thanx

Ответы [ 2 ]

1 голос
/ 10 июня 2011

Кимберли Трипп - Королева индексирования - содержит массу отличных постов в блоге о том, как выбрать хороший ключ кластеризации (в SQL Server первичный ключ - по умолчанию- ваш ключ кластеризации).

Проверьте их, прочитайте их, изучите их - повинуйтесь им!: -)

В основном, просто прочитайтевесь ее блог - все об индексировании, кластеризованных индексах и т. д.

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

  • узкий - 4 байта INT - это здорово, все, что больше 16 байт (GUID) - огромная трата пространства
  • уникальное - читайте ее посты в блоге о том, почему
  • static - никогда не изменяться (если возможно)
  • постоянно увеличиваться (обычно: INT IDENTITY), чтобы избежать разбиения страниц, которые вызывают большую часть фрагментации
1 голос
/ 10 июня 2011

Основная причина фрагментации - страницы. Вставка новых записей или обновление существующих записей может привести к изменениям в способе размещения данных на странице

Хорошая презентация - http://devconnections.com/updates/LasVegas_Fall10/SQL/Randal-SQL-SDB306-Fragmentation.pdf

http://blog.sqlauthority.com/2008/03/27/sql-server-2005-find-index-fragmentation-details-slow-index-performance/

Вы можете указать fillfactor в зависимости от того, какие обновления / вставки сделаны в таблице. Пример. Если ваша таблица предназначена только для чтения и обновление не может выполняться, вы можете указать коэффициент заполнения 100%. Это обеспечит распределение, чтобы ваши вставки / обновления не вызывали фрагментацию.

70% вы можете настроить для экспериментов. Восстановление индекса является еще одним решением этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...