Имя: Пароль:
1C
1C 7.7
v7: Оценка фрагментации индексов базы (SQL)
0 sergeystav
 
05.09.08
11:54
Кто-нибудь пользовался функцией SQL сервера "sys.dm_db_index_physical_stats" для анализа степени фрагментации индексов, как того рекомендует 1С?
У меня запуск этого анализа до и после реиндексации выдает одни и теже завышенные результаты фрагментации, порядка 400 индексов с процентом фрагментации 40-80%.
1 Maxus43
 
05.09.08
12:14
это выводит степень фрагментации всех баз наверно... реиндексацию ВСЕХ баз делаеш?
2 sergeystav
 
05.09.08
13:35
реиндексирую одну базу
и статистику по одной смотрю
SELECT OBJECT_NAME(object_id),avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID(N'democopy'), NULL, NULL, NULL, NULL)
where avg_fragmentation_in_percent>25
3 ДенисЧ
 
05.09.08
13:36
Я пытался такое анализировать на 7.7...
Смысла не увидел, оказалось проще раз в неделю запускать дефрагментацию всех индексов и раз в 2-3 месяца - полную периндексацию
4 sergeystav
 
05.09.08
13:41
у меня переиндексация каждую ночь, а дефрагментация в 13-00.

Дефрагментация у меня анализирует процент фрагментации и если он больше 25 то дефрагментирует индекс и логирует имя таблицы. Но если я подряд запускаю скрипт дефрагментации, то он перелопачивает те же самые индексы.
Не могу понять реиндексируется база в конце концов или нет.
5 ДенисЧ
 
05.09.08
13:41
а зачем дефрагментация после переиндексации?
6 sergeystav
 
05.09.08
13:42
дефрагментация уже в середине рабочего дня
7 sergeystav
 
05.09.08
13:45
это все навеяно рекомендациями сайта 1С:

"Чрезмерная фрагментация индексов создает проблемы для больших операций ввода-вывода.
Функция  sys.dm_db_index_physical_stats возвращает процент фрагментации в столбце avg_fragmentation_in_percent. Если значение в этом столбце превышает 25%, то для восстановления  производительности рекомендуется выполнить дефрагментацию этого индекса. От снижения фрагментации индексов могут выиграть операции сканирования больших диапазонов данных.
Использование этой информации может существенно снизить нагрузку на систему и избежать ненужных операций по дефрагментации тех индексов, для которых она не требуется."
8 sergeystav
 
05.09.08
15:33
ап
9 Maxus43
 
05.09.08
15:51
есть ли смысл отдельно таблицы реиндексировать? ночью полную реиндексацию базы данных, днём - полную дефрагментацию, у нас например достаточно мощный сервак, уменьшения производительности при дефрагментации не замечаем
10 sergeystav
 
05.09.08
16:19
так вся база и реиндексируется, вопрос в том почему после этого SQL показывает большой процент фрагментации индексов базы
Закон Брукера: Даже маленькая практика стоит большой теории.