Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
MS SQL Server 2008

выполняю

SELECT a.index_id, name, avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID(N'myDB'), NULL,NULL, NULL, NULL) AS a
JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id

и нахожу индексы id = 0, name = NULL, дефрагментация 80%

Что это за индексы ?
Что с ними делатъ?
29 ноя 11, 13:16    [11677241]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
это таблица без кластерного индекса, heap
в чистом виде - ничего не делать

собственно, а почему возник вопрос - "что с ними делать"?
29 ноя 11, 13:18    [11677271]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
Дефрагментация 80% напугала
29 ноя 11, 13:19    [11677293]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
student-uni
Дефрагментация 80% напугала

ну, наверное, всё-таки "фрагментация", но не суть
Чем она так напугала? значением? И что? Что-то тормозит? Работает недостаточно быстро? Что-то поломалось?
29 ноя 11, 13:20    [11677301]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
необходимо фрагментацию мониторить и при > 30 % реиндексить

а как реиндексить если имя нет?
29 ноя 11, 13:22    [11677322]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
student-uni
Дефрагментация 80% напугала
А хоть 0% или 100% - куча, она и в африке куча - все равно для поиска данных будет использоваться полное сканирование этой кучи.
29 ноя 11, 13:22    [11677327]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
student-uni
...а как реиндексить если имя нет?
Например, создать для таблицы кластеризованный индекс, и сразу его грохнуть.
29 ноя 11, 13:24    [11677337]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
student-uni
необходимо фрагментацию мониторить и при > 30 % реиндексить

а как реиндексить если имя нет?

заблуждение.
29 ноя 11, 13:24    [11677340]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
куча
Guest
tpg
student-uni
Дефрагментация 80% напугала
А хоть 0% или 100% - куча, она и в африке куча - все равно для поиска данных будет использоваться полное сканирование этой кучи.


угу, только для сильнофрагментированной кучи ее сканирование выливается в random IO.

ЗЫ
именно скорость сканирование серьезно проседает при фрагментации.
29 ноя 11, 13:26    [11677366]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
Понял, надо добавить в запрос

index_type <> 'HEAP'

тогда выведутся индексы,

а кучу нет смысла дефрагментировать.

.

А в чем заблуждение? После дефрагментации производительность ощутимо повышается.
29 ноя 11, 13:29    [11677394]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
куча
...
ЗЫ
именно скорость сканирование серьезно проседает при фрагментации.
Это смотря какая фрагментация. Если логическая, то и... фик с ней.
29 ноя 11, 13:29    [11677395]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
куча
Guest
tpg
куча
...
ЗЫ
именно скорость сканирование серьезно проседает при фрагментации.
Это смотря какая фрагментация. Если логическая, то и... фик с ней.


автор
SELECT a.index_id, name, avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID(N'myDB'), NULL,NULL, NULL, NULL) AS a
JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id
29 ноя 11, 13:30    [11677419]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
tpg
куча
...
ЗЫ
именно скорость сканирование серьезно проседает при фрагментации.
Это смотря какая фрагментация. Если логическая, то и... фик с ней.
Если у кучи есть логическая фрагментация, то это не "фик с ней"... Ибо у кучи может быть только внешняя фрагментация, по определению. ;)
29 ноя 11, 13:31    [11677433]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
student-uni
А в чем заблуждение? После дефрагментации производительность ощутимо повышается.

Например в том, что "надо мониторить и реиндексить если"
Если всё и так хорошо работает - то не надо, руководствуясь принципом "работает - не трогай".
29 ноя 11, 13:32    [11677439]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
куча.
Guest
student-uni
а кучу нет смысла дефрагментировать.

это вы зря.
29 ноя 11, 13:34    [11677473]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
locky
student-uni
А в чем заблуждение? После дефрагментации производительность ощутимо повышается.

Например в том, что "надо мониторить и реиндексить если"
Если всё и так хорошо работает - то не надо, руководствуясь принципом "работает - не трогай".


Согласен,

только система время от времени становится ужасно медленной , особенно после импорта данных

как быть, ждать пока система станет медленной, запускать трейсер и следовать рекомендациям оптимаизера ?

или мониторить индексы и реиндексировать регулярно ?
29 ноя 11, 13:36    [11677500]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
DeColo®es
... Ибо у кучи может быть только внешняя фрагментация, по определению. ;)
Ок, согласен.
29 ноя 11, 13:38    [11677517]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
student-uni
locky
пропущено...

Например в том, что "надо мониторить и реиндексить если"
Если всё и так хорошо работает - то не надо, руководствуясь принципом "работает - не трогай".


Согласен,

только система время от времени становится ужасно медленной , особенно после импорта данных

как быть, ждать пока система станет медленной, запускать трейсер и следовать рекомендациям оптимаизера ?

или мониторить индексы и реиндексировать регулярно ?

Для начала - почитать про индексы, дабы овладеть темой.
А затем уже с чувством, с толком, с расстановкой - смотреть, что там можно сделать.

потому как "время от времени ужасно медленной" - это, с моей т.з. - странно. (особенно если это "время от времени" - происходит регулярно и часто).
29 ноя 11, 13:56    [11677683]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
Glory
Member

Откуда:
Сообщений: 104751
student-uni
только система время от времени становится ужасно медленной , особенно после импорта данных

как быть, ждать пока система станет медленной, запускать трейсер и следовать рекомендациям оптимаизера ?

или мониторить индексы и реиндексировать регулярно ?

Обновлять статистику после импорта данных не пробовали ?
А очищать кэш планов ?
29 ноя 11, 13:57    [11677691]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
не пробовал. Спасибо. Попробую.
29 ноя 11, 14:12    [11677848]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
DeColo®es
tpg
пропущено...
Это смотря какая фрагментация. Если логическая, то и... фик с ней.
Если у кучи есть логическая фрагментация, то это не "фик с ней"... Ибо у кучи может быть только внешняя фрагментация, по определению. ;)

А по-моему tpg прально высказал суть. Если под логической фрагментацией подразумевается фрагментация внутри файла, то такая фрагментация влияет только при просмотре в порядке ключа индекса, index order scan, а т.к. данные в куче лежат на страницах никак не связанных между собой, то единственный способ которым сервер сканирует кучу это просмотр в порядке создания, через страницы IAM. Который и так и так происходит в том порядке, в котором страницы размещены в файле. Если речь идет о фрагментации файловой системы, то конечно да, влияет.
29 ноя 11, 14:21    [11677949]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
куча
Guest
SomewhereSomehow
DeColo®es
пропущено...
Если у кучи есть логическая фрагментация, то это не "фик с ней"... Ибо у кучи может быть только внешняя фрагментация, по определению. ;)

А по-моему tpg прально высказал суть. Если под логической фрагментацией подразумевается фрагментация внутри файла, то такая фрагментация влияет только при просмотре в порядке ключа индекса, index order scan, а т.к. данные в куче лежат на страницах никак не связанных между собой, то единственный способ которым сервер сканирует кучу это просмотр в порядке создания, через страницы IAM. Который и так и так происходит в том порядке, в котором страницы размещены в файле. Если речь идет о фрагментации файловой системы, то конечно да, влияет.

хмм, что же тогда показывает значение внешней фрагментации для кучи?
29 ноя 11, 14:39    [11678092]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
куча,

Написано жеж
автор
The fragmentation level of an index or heap is shown in the avg_fragmentation_in_percent column. For heaps, the value represents the extent fragmentation of the heap.

Extent Fragmentation

This is the percentage of out-of-order extents in the leaf pages of a heap. An out-of-order extent is one for which the extent that contains the current page for a heap is not physically the next extent after the extent that contains the previous page.

Что смущает?
29 ноя 11, 15:02    [11678304]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
SomewhereSomehow
куча,

Написано жеж
автор
The fragmentation level of an index or heap is shown in the avg_fragmentation_in_percent column. For heaps, the value represents the extent fragmentation of the heap.

Extent Fragmentation

This is the percentage of out-of-order extents in the leaf pages of a heap. An out-of-order extent is one for which the extent that contains the current page for a heap is not physically the next extent after the extent that contains the previous page.

Что смущает?
куча говорит о "внешней фрагментации", а ту - про фрагментацию экстентов.
Прошу прощения, что влез :)
29 ноя 11, 15:13    [11678383]     Ответить | Цитировать Сообщить модератору
 Re: что за индексы index_id = 0, name = NULL, дефрагментация 80% ?  [new]
куча
Guest
SomewhereSomehow
куча,

Написано жеж
автор
The fragmentation level of an index or heap is shown in the avg_fragmentation_in_percent column. For heaps, the value represents the extent fragmentation of the heap.

Extent Fragmentation

This is the percentage of out-of-order extents in the leaf pages of a heap. An out-of-order extent is one for which the extent that contains the current page for a heap is not physically the next extent after the extent that contains the previous page.

Что смущает?

ну так если это значение слишком высоко (1 экстенд - 1 фрагмент), random IO все равно не избежать, или я не прав?
29 ноя 11, 15:36    [11678562]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить