Перестроение индекса SQL: процент фрагментации индекса увеличивается?

Я пытаюсь создать задание агента, которое перестраивает индексы для нашей базы данных SQL 2008 R2, подключенной к интерфейсу Deltek 6.1.

Бег:

exec sp_msforeachtable 'DBCC DBREINDEX("?"," ",0)'

Заметив, что некоторые индексы на самом деле становятся значительно более фрагментированными. Может ли это быть из-за интервала между индексами? Это случалось в наших тестовых и производственных сетях с различными способами восстановления. Таблицы в основном большие, мы обновляем статистику после запуска ребилда.


person fortysixty    schedule 24.06.2013    source источник


Ответы (1)


Скрипт для перестроения всех индексов таблиц в SQL Server:

USE DatabaseName --Enter the name of the database you want to reindex 

DECLARE @TableName varchar(255) 

DECLARE TableCursor CURSOR FOR 

SELECT table_name FROM information_schema.tables 

WHERE table_type = 'base table' 

OPEN TableCursor 

FETCH NEXT FROM TableCursor INTO @TableName 

WHILE @@FETCH_STATUS = 0 

BEGIN 

DBCC DBREINDEX(@TableName,' ',90) 

FETCH NEXT FROM TableCursor INTO @TableName 

END 

CLOSE TableCursor 

DEALLOCATE TableCursor 
person MineScript    schedule 24.06.2013
comment
Мы уже делаем то же самое, что и этот запрос, мы просто используем уже существующий коэффициент заполнения, а не определяем новый. Проблема, с которой мы сталкиваемся, заключается в том, что средняя фрагментация в % фактически ухудшается после запуска сценария перестроения/реорганизации. - person fortysixty; 25.06.2013
comment
Каков размер базы данных? Если у вас есть ограничение на объем пространства, у вас могут возникнуть проблемы, вам нужно как минимум 10% свободного места для успешной дефрагментации. - person MineScript; 26.06.2013
comment
Размер базы данных составляет примерно 60 ГБ, из них 15,5 ГБ свободного места. - person fortysixty; 11.07.2013