Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как избавиться от логической фрагментации?  [new]
Claire
Member

Откуда:
Сообщений: 3
Здравствуйте.
Имеется sql server 2005 standard edition.
Регулярно проводятся операции по дефрагментации и перестроению индексов. Для перестроения индексов выбран fillfactor 80.
Но у некоторых индексов фрагментация так и не устраняется. Например, при выполнении команды:

DBCC SHOWCONTIG scanning '_Reference185' table...
Table: '_Reference185' (1985962697); index ID: 1, database ID: 7
TABLE level scan performed.
- Pages Scanned................................: 8
- Extents Scanned..............................: 8
- Extent Switches..............................: 7
- Avg. Pages per Extent........................: 1.0
- Scan Density [Best Count:Actual Count].......: 12.50% [1:8]
- Logical Scan Fragmentation ..................: 87.50%
- Extent Scan Fragmentation ...................: 37.50%
- Avg. Bytes Free per Page.....................: 1574.0
- Avg. Page Density (full).....................: 80.55%

Т.е Avg Page Density=80.55 указывает на филфактор=80. Но меня смущает большой процент логической фрагментации (это означает, что страницы индекса не идут последовательно слева направо?). Каким образом можно ее устранить?
20 окт 09, 07:14    [7809036]     Ответить | Цитировать Сообщить модератору
 Re: Как избавиться от логической фрагментации?  [new]
aleks2
Guest
Ну и чем вам мешает "логическая" фрагментация?
Бурную деятельность и имитируете?
20 окт 09, 07:23    [7809041]     Ответить | Цитировать Сообщить модератору
 Re: Как избавиться от логической фрагментации?  [new]
Claire
Member

Откуда:
Сообщений: 3
Разве логическая фрагментация не увеличивает время выполнения запроса?
20 окт 09, 07:44    [7809071]     Ответить | Цитировать Сообщить модератору
 Re: Как избавиться от логической фрагментации?  [new]
V. Goncharenko
Member

Откуда:
Сообщений: 126
Claire
- Pages Scanned................................: 8

см. Understanding Pages and Extents
автор
Но меня смущает большой процент логической фрагментации (это означает, что страницы индекса не идут последовательно слева направо?). Каким образом можно ее устранить?

Вас серьезно волнует фрагментация восьмистраничной таблицы? Тогда см. trace flag 1118
20 окт 09, 08:16    [7809111]     Ответить | Цитировать Сообщить модератору
 Re: Как избавиться от логической фрагментации?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Claire


DBCC SHOWCONTIG scanning '_Reference185' table...
Table: '_Reference185' (1985962697); index ID: 1, database ID: 7
TABLE level scan performed.
- Pages Scanned................................: 8
- Extents Scanned..............................: 8

Ваш индекс ввиду его малого размера расположен в смешанных экстентах (mixed extents)
От такой дефрагментации избвавляются только увеличением объема данных, чтобы объекты выделялись полные экстенты
20 окт 09, 10:29    [7809702]     Ответить | Цитировать Сообщить модератору
 Re: Как избавиться от логической фрагментации?  [new]
Claire
Member

Откуда:
Сообщений: 3
Glory
объекты выделялись полные экстенты


Скажите, а можно ли оптимизировать индекс так, чтобы он занимал меньше экстентов?
26 окт 09, 08:07    [7836641]     Ответить | Цитировать Сообщить модератору
 Re: Как избавиться от логической фрагментации?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Claire
Glory
объекты выделялись полные экстенты


Скажите, а можно ли оптимизировать индекс так, чтобы он занимал меньше экстентов?
При размере менее 8 страниц - нет.
26 окт 09, 09:21    [7836775]     Ответить | Цитировать Сообщить модератору
 Re: Как избавиться от логической фрагментации?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Claire
Glory
объекты выделялись полные экстенты


Скажите, а можно ли оптимизировать индекс так, чтобы он занимал меньше экстентов?

Если оптимизировать==дефрагментировать, то можно попробовать удалить индекс и создать заново.
Но если сервер опять разбрасает его по смешенным экситентам, то придется увеличивать число записей. Хотя бы временно
26 окт 09, 11:02    [7837201]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить