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

Откуда: Москва
Сообщений: 2646
Происходит ли дефрагментация индексов, при использовании команды?
DBCC SHRINKFILE (N'БазаДанных', 232000)
14 ноя 14, 11:59    [16845093]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
Glory
Member

Откуда:
Сообщений: 104751
trew
Происходит ли дефрагментация индексов, при использовании команды?

Нет. С чего она вдруг должна происходить ?
14 ноя 14, 12:00    [16845113]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
msLex
Member

Откуда:
Сообщений: 9308
Glory
trew
Происходит ли дефрагментация индексов, при использовании команды?

Нет. С чего она вдруг должна происходить ?

Может происходит логическая(порядок страниц).
14 ноя 14, 12:01    [16845132]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
Glory,

Размер базы уменьшается, данные перемещаются. Почему дефрагментации индексов не будет?
14 ноя 14, 12:02    [16845142]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
msLex
Member

Откуда:
Сообщений: 9308
msLex
Glory
пропущено...

Нет. С чего она вдруг должна происходить ?

Может происходит логическая(порядок страниц).

извиняюсь, может происходит логическая фрагментация,
дефрагментация при шринке из ряда научной фантастики.
14 ноя 14, 12:06    [16845176]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
Glory
Member

Откуда:
Сообщений: 104751
msLex
Может происходит логическая(порядок страниц).

В смысле что в результате перемещений страниц случайно может произойти их расположение в логическом порядке ?
Или что такое такое перемещение целеноправленно располагает страницы в логическом порядке ?

If target_size is specified, DBCC SHRINKFILE tries to shrink the file to the specified size. Used pages in the part of the file to be freed are relocated to available free space in the part of the file retained.
14 ноя 14, 12:07    [16845185]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
Glory
Member

Откуда:
Сообщений: 104751
trew
Размер базы уменьшается, данные перемещаются. Почему дефрагментации индексов не будет?

Потому что дефрагментация подразумевает не просто перемещение страниц, а расположение их в определенном порядке.
14 ноя 14, 12:08    [16845196]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8839
2trew
Фрагментация объектов БД подразумевает незаполненность страниц, физический порядок совершенно не при чём.
Тасуя полупустые страницы вы никак не измените фрагментацию.
14 ноя 14, 12:28    [16845385]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
Glory
Member

Откуда:
Сообщений: 104751
Владислав Колосов
Фрагментация объектов БД подразумевает незаполненность страниц, физический порядок совершенно не при чём.
Тасуя полупустые страницы вы никак не измените фрагментацию.

есть еще логическая фрагментация. Для страниц любой заполненности.
14 ноя 14, 12:34    [16845432]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
msLex
Member

Откуда:
Сообщений: 9308
Владислав Колосов
Фрагментация объектов БД подразумевает незаполненность страниц

Есть два вида фрагментации
1. Физическая, она же внутренняя - это заполненность страниц данными
2. Логическая, она же внешняя - это порядок расположения страниц индекса в файле данных.

Шринк, может приводить к логической фрагментации, именно по этому после шринка рекомендуется выполнить ребилд индексов
14 ноя 14, 12:36    [16845454]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
Glory,

ссылка
Так где же обещанные SHRINKFILE и SHRINKDATABASE, и как они связаны с рассматриваемой проблемой? По существу, Вы можете воспринимать их работу, как аналог команды DBREINDEX, т.е. они берут данные из конца базы данных и заполняют ими все свободные экстенты в начале базы данных, таким образом они могут уменьшить и высвободить неиспользуемое место в файлах. Это очень плохо, потому что объекты станут фрагментированными; очень многие администраторы делают DBREINDEX, а затем пытаются высвободить неиспользуемое место, считая это само собой разумеющейся последовательностью действий!


После SHRINKFILE произойдет фрагментация индексов, и нужно делать REBUILD для индексов.
Во время выполнения ALTER INDEX REBUILD будет происходить дефрагментация индексов.
Правильно?
14 ноя 14, 12:38    [16845465]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
edyaN
Member

Откуда: Berlin
Сообщений: 185
trew
Glory,

ссылка
Так где же обещанные SHRINKFILE и SHRINKDATABASE, и как они связаны с рассматриваемой проблемой? По существу, Вы можете воспринимать их работу, как аналог команды DBREINDEX, т.е. они берут данные из конца базы данных и заполняют ими все свободные экстенты в начале базы данных, таким образом они могут уменьшить и высвободить неиспользуемое место в файлах. Это очень плохо, потому что объекты станут фрагментированными; очень многие администраторы делают DBREINDEX, а затем пытаются высвободить неиспользуемое место, считая это само собой разумеющейся последовательностью действий!


После SHRINKFILE произойдет фрагментация индексов, и нужно делать REBUILD для индексов.
Во время выполнения ALTER INDEX REBUILD будет происходить дефрагментация индексов.
Правильно?

Правильно то, что
Во время выполнения ALTER INDEX REBUILD может происходить дефрагментация индексов.

а вот утверждение, что
После SHRINKFILE произойдет фрагментация индексов, и нужно делать REBUILD для индексов

спорно, поскольку при перестроении индексов база скорее всего увеличится, что сведет эффект от SHRINKFILE к минимальному.
17 ноя 14, 13:53    [16858412]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8839
Я понимаю, логическая, но при 99.8% кэш хит она не должна влиять на производительность.
17 ноя 14, 15:07    [16859200]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Владислав Колосов
Я понимаю, логическая, но при 99.8% кэш хит она не должна влиять на производительность.
А если не 99.8%?
17 ноя 14, 23:09    [16862300]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31991
edyaN
а вот утверждение, что
После SHRINKFILE произойдет фрагментация индексов, и нужно делать REBUILD для индексов

спорно, поскольку при перестроении индексов база скорее всего увеличится, что сведет эффект от SHRINKFILE к минимальному.
Почему спорно? Фрагментация при шринке произойдёт, а при ребилде индексов произойдёт дефрагментация, одновременно с увеличением места.

Спорного тут ничего нет, эти два явления вполне могут сосуществовать и не противоречат друг другу.
18 ноя 14, 01:36    [16862702]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
o-o
Guest
alexeyvg
edyaN
а вот утверждение, что
пропущено...

спорно, поскольку при перестроении индексов база скорее всего увеличится, что сведет эффект от SHRINKFILE к минимальному.
Почему спорно? Фрагментация при шринке произойдёт, а при ребилде индексов произойдёт дефрагментация, одновременно с увеличением места.

Спорного тут ничего нет, эти два явления вполне могут сосуществовать и не противоречат друг другу.


думаю, edyaN упирал на слово нужно.
спорно в смысле, что так вообще нужно делать.
сжали и фрагментировали, давайте теперь дефрагментируем и расширим.
MOV AX, BX
MOV BX, AX
MOV AX, BX
MOV BX, AX
...
I LIKE TO MOVE IT MOVE IT !!!!
18 ноя 14, 02:00    [16862734]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8839
Mind
Владислав Колосов
Я понимаю, логическая, но при 99.8% кэш хит она не должна влиять на производительность.
А если не 99.8%?

Это полемический вопрос, а не практический :) Если не 99.8%, то пора менять "железо".
18 ноя 14, 11:33    [16864024]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Владислав Колосов
Mind
пропущено...
А если не 99.8%?

Это полемический вопрос, а не практический :) Если не 99.8%, то пора менять "железо".
Ага, или работу :)
Я не могу с вами согласиться, потому что ситуации бывают разные, и не всегда памяти достаточно чтобы держать там всю активную часть базы.
18 ноя 14, 20:35    [16868243]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8839
Mind, может и так, но подобные операции относятся всё же к разряду полировки, по моему мнению. Раньше я параноидально относился к логической фрагментации, но практика показала, что опасения были чрезмерными по сравнению с плохо написанными запросами или неудачной структурой данных, например.
19 ноя 14, 11:12    [16870186]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
edyaN
Member

Откуда: Berlin
Сообщений: 185
alexeyvg
edyaN
а вот утверждение, что
пропущено...

спорно, поскольку при перестроении индексов база скорее всего увеличится, что сведет эффект от SHRINKFILE к минимальному.
Почему спорно? Фрагментация при шринке произойдёт, а при ребилде индексов произойдёт дефрагментация, одновременно с увеличением места.

Спорного тут ничего нет, эти два явления вполне могут сосуществовать и не противоречат друг другу.

вы меня троллите. После слова "спорно" я написал почему, вы же начинаете свое сообщение со слов "Почему спорно?". К тому же я не утверждал, что "эти два явления" противоречат друг другу.
20 ноя 14, 12:06    [16877388]     Ответить | Цитировать Сообщить модератору
 Re: Команда shrinkfile и дефрагментация индексов  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8839
Кстати, как ни крути, не удастся добиться физически упорядоченной информации, т.к. диски "физику" не выставляют наверх, они показывают логические сектора/поверхности. Можно сказать, что после дефрагментации получаем "условно-упорядоченные данные".
20 ноя 14, 16:33    [16879971]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить