Не дефрагментируется индекс

Vitaliy_Tokioy
Дата: 12.09.2006 18:04:53
Следующий запрос:
dbcc showcontig ('dbo.Klients') WITH ALL_INDEXES
выдает
DBCC SHOWCONTIG scanning 'Klients' table...
Table: 'Klients' (517576882); index ID: 0, database ID: 7
TABLE level scan performed.
- Pages Scanned................................: 397
- Extents Scanned..............................: 87
- Extent Switches..............................: 86
- Avg. Pages per Extent........................: 4.6
- Scan Density [Best Count:Actual Count].......: 57.47% [50:87]
- Extent Scan Fragmentation ...................: 58.62%
- Avg. Bytes Free per Page.....................: 330.5
- Avg. Page Density (full).....................: 95.92%

Судя по Scan Density идет довольно большая фрагментация.
DBCC INDEXDEFRAG с последующим sp_updatestats вызовом не помогает.

Попробовал и DBCC DBREINDEX, результат такой же.
Кластерного индекса в таблице нет.
Сейчас каждую ночь выполняется джоб с DBCC DBREINDEX и sp_updatestats. Судя по результатам showcontig этого недостаточно...

Подскажите, как убрать дефрагментацию?

Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 1)
Glory
Дата: 12.09.2006 18:13:46
index ID: 0 - это сама таблица
Prolog
Дата: 12.09.2006 18:16:15
Vitaliy_Tokioy
Подскажите, как убрать дефрагментацию?
Например, скопировать эту таблицу в другую. Первую удалить, второую переименовать в первую.
Crimean
Дата: 12.09.2006 18:16:44
кластерный индекс создать и убить. делов-то
Vitaliy_Tokioy
Дата: 12.09.2006 18:33:54
to Prolog, Crimean
Это немного не то, что надо. Хотелось бы, чтоб ночью, когда проходит перестройка индексов, происходила и дефрагментация.
По моему, неправильно будет каждый день создавать и удалять кластерный индекс или переливать данные из одной таблицы в другую.

to Glory
Насколько я понимаю, фрагментация таблицы идет из-за фрагментации самого файла БД?
Prolog
Дата: 12.09.2006 18:43:26
Vitaliy_Tokioy
Насколько я понимаю, фрагментация таблицы идет из-за фрагментации самого файла БД?
Абсолютно не обязательно.
DBCC DBREINDEX и DBCC INDEXDEFRAG - работают с индексами. dbo.Klients - не имеет класторного индекса и хранится в виде так называемой кучи. Вот эта куча и не дефрагментируется через DBCC ...
Вам предложили методы, как это преодолеть.
Crimean
Дата: 12.09.2006 19:00:29
> Хотелось бы, чтоб ночью, когда проходит перестройка индексов, происходила и дефрагментация

сделать один из индексов кластерным.
неплохой кандидат на эту роль "Id int identity primary key".
Vitaliy_Tokioy
Дата: 12.09.2006 19:00:30
Prolog
dbo.Klients - не имеет класторного индекса и хранится в виде так называемой кучи. Вот эта куча и не дефрагментируется через DBCC ...


Жаль, что не дефрагментируется...
Спасибо за ответы.