реиндексация под ESXi виртуализацией (RAID10 на 15 SAS дисках)

1. amaksimov 21.10.13 13:34 Сейчас в теме
Коллеги, добрый день,
имеет ли смысл делать реиндексацию (dbcc sp_foreachtable db_reindex ... ) если сервер (Win2008 на котором SQL2008) стоит под ESXi виртуализацией (RAID 10 на 15 дисках).

Я программист,
системный администратор говорит что не обязательно, т.к. дисков много, виртуализация всё равно даже упорядоченный индекс отобразит случайным образом на винты,
а у нас, например, запрос - выбрать данные из регистра (любого, в особенности бухгалтерии) по регистратору
отрабатывает долго в рабочей базе (секунды 3-5)
Я думаю проблема в индексах, запрос уже больше невозможно оптимизировать, если там просто по регистратору выборка
(используется в проверке дате запрета редактирования)

И почему реструктуризация может помочь
(мне бы понять для себя, ведь частично и администратор прав, если случайным образом на RAID отображается, зачем нам упорядоченность на виртуальной машине, если далее всё равно в случайное всё отобразится)
Вознаграждение за ответ
Показать полностью
Найденные решения
15. Gilev.Vyacheslav 1913 22.10.13 23:05 Сейчас в теме
А почему в виртуалку не "подмаплены" физические диски под базу данных? Зачем нужен виртуальный диск для операционки я понимаю, но зачем хостить саму базу данных?
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
8. Babuin 21.10.13 14:50 Сейчас в теме
(1) crabzzy,
имеет, db_reindex устраняет так называемую "внутреннею фрагментацию" (фрагментация на уровне страниц). Есть еще внешняя фрагментация это как раз про "упорядоченный индекс отобразит случайным образом на винты", но и в этом случае рекомендуется выполнять дефрагментацию. Причем сначала нужно выполнить внешнюю, потом внутреннюю.
amaksimov; +1 Ответить
11. amaksimov 22.10.13 11:10 Сейчас в теме
(8) Babuin, спасибо!
Подожду ещё ответов
2. amaksimov 21.10.13 13:36 Сейчас в теме
добавил вознаграждение
4. fly_men 21.10.13 14:18 Сейчас в теме
(2) crabzzy, Вы считаете, что выборка в 3-5 сек тем более из регистра бухгалтери это долго? Сколько записей всего в регистре?
10. amaksimov 22.10.13 11:09 Сейчас в теме
(4) fly_men, по записям - не знаю,
ну да, мы ту же базу перекидывали на другой сервер (там кластер 1С и SQL, тоже виртуализация) - там работала быстрее, раза в 1.5 - 2, не пойму в чем проблема, либо другие базы мешают на SQL которые, либо само размещение базы на этом сервере
3. thenroach 4 21.10.13 14:14 Сейчас в теме
Привет! а если при помощи ТИС сделать пересчет итогов и реиндексацию - быстрее работает?
5. thenroach 4 21.10.13 14:19 Сейчас в теме
коллеги говорят что прирост производительности в запросах должен быть, т.к. реиндексация приводит в порядок не файлы на жестких дисках.

Реиндексация таблиц включает полное перестроение индексов таблиц базы данных, что приводит к существенной оптимизации их работы. Рекомендуется выполнять регулярную переиндексацию таблиц базы данных. Для реиндексации всех таблиц базы данных необходимо выполнить следующий SQL запрос:

sp_msforeachtable N'DBCC DBREINDEX (''?'')'

Реиндексация таблиц блокирует их на все время своей работы, что может существенно сказаться на работе пользователей. В связи с этим реиндексацию рекомендуется выполнять во время минимальной загрузки системы.

После выполнения реиндексации нет необходимости делать дефрагментацию индексов.
6. fly_men 21.10.13 14:21 Сейчас в теме
(5) thenroach, Ещё помогает обновление статистики. Удобнее делать через планы обслужитвания.
amaksimov; +1 Ответить
7. thenroach 4 21.10.13 14:25 Сейчас в теме
(6) fly_men, да. Это тоже нужная вещь.
вот статья в которой описаны все регламентные задания и корректная настройка sql
http://infostart.ru/public/65955/
amaksimov; +1 Ответить
12. amaksimov 22.10.13 11:10 Сейчас в теме
9. MiB 22.10.13 07:32 Сейчас в теме
В зависимости от того, как настроен sql, а так, разницы нет никакой.
amaksimov; +1 Ответить
13. zaoallat 22.10.13 13:43 Сейчас в теме
crabzzy Все верно. Когда Вы переносите данные в виде 1с dt файла или в SQL bak файла то в приемнике индексы и статистика обновленная создается. Так как она свежая и доступ к ним упорядочен то запрос формируется быстрее. Эти финты иногда помогают избавится от ошибки когда ТИС не проходит. Вопрос почему решили установить прослойку ESXi и какая версия. Могу сказать из личного опыта. Отказались от виртуальной среды. Прирост возрос на 10-15% + стабильность. На счет сортировки данных сначала пусть Ваш сис. админ даст отчет по дисковой системе что все работает штатно. Верно настроен контроллер и дисковая подсистема. Если все корректно тогда делайте регламентные задания. Я бы Вам советовал материал Gilev.Vyacheslav. в его блоге и на сайте http://www.gilev.ru/. Я еще Вам посоветовал обратить на настройки SQL + 1C сервера
amaksimov; +1 Ответить
14. amaksimov 22.10.13 13:48 Сейчас в теме
15. Gilev.Vyacheslav 1913 22.10.13 23:05 Сейчас в теме
А почему в виртуалку не "подмаплены" физические диски под базу данных? Зачем нужен виртуальный диск для операционки я понимаю, но зачем хостить саму базу данных?
16. amaksimov 23.10.13 08:21 Сейчас в теме
(15) Gilev.Vyacheslav, Вячеслав, верно, скорей всего так и сделано (без виртуализации диски подключены).
Вероятно, дефрагментация RAID дисков тоже может помочь в скорости.
(не сталкивался, не знаю как оно работает, один логический скорей всего несколько физических дисков занимает).
Спасибо!
17. miroha 27.10.13 03:51 Сейчас в теме
RAID 10 - 15 - нечетное количество дисков?
Статистику обновлять нужно и желательно каждый день. Скорость запросов от нее очень зависит.
Индексы можно и средствами 1С в конфигураторе, если "изменение" базы за месяц менее 15% достаточно раз в две недели.
Для регистров с разделением итогов раз в неделю пересчитывать итоги - можно фоновым заданием 1с во время слабой загрузки.
amaksimov; +1 Ответить
18. amaksimov 28.10.13 08:27 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот