Показать сообщение отдельно
Старый 14.08.2009, 14:05   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Zabr Посмотреть сообщение
Освободит ли место дефрагментация, если сами записи не удалялись, а только чистились в них эти поля ?
Не то, чтобы освободит.
Фактически занятое место останется прежним. А вот размер базы действительно может уменьшить.

SQL хранит данные в страницах. Причем, SQL сознательно заполняет страницы не полностью (тут длинная теория почему именно так. см. BOL).
А с диска читаются именно страницы (на самом деле наборы из подряд идущих страниц - кластера).

Это значит, что если страницы заполненны не полностью, то диск все равно тратит время и ресурсы на чтение полного кластера. Поэтому чем выше степень заполнения страниц, чем меньше фрагментация, тем меньше дисковых операций будет выполнено для чтения того же набора данных. (Однако высокая степень заполнения может ухудшить время операций вставки и обновления. См. все ту же теорию).

Насколько я помню, у вас была очень высокая степень фрагментированности данных. Дефрагментация вам действительно может помочь.

Однако дефрагментацию индексов и таблиц с кластерными индексами выполняет ребилд индексов. А он у вас периодически проводится, насколько я помню. Т.е. остается дефрагментация неиндексированных данных. В принципе провести можно. Но у вас сильного эффекта от этой операции я бы не ожидал.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: Zabr (3).