Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Зеркалирование и переиндексация  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Доброго времени суток!

СУБД: Microsoft SQL Server 2005 - 9.00.5000.00 (X64) Dec 10 2010 10:38:40 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1)

Есть БД: размер - 200Гб, загруженность порядка 20 активных одновременных транзакций.
На БД поднято синхронное зеркалирование. Раз в неделю идет перестройка индексов. Скрин плана переиндексации во вложении. Таблицы в БД достигают 15 Гб из них 6 Гб это индексы.

При запуске переиндексации появляются обширные блокировки с типом ожидания - DBMIRROR_DBM_Event, инициатором является перестройка индексов на большой таблице. При этом производительность БД резко падает. Восстановить производительность помогает только остановка зеркалирования.

Вопрос как подружить зеркалирование и переиндексацию(асинхронное зеркалирование использовать не хочется, т.к. потеря данных критична)

К сообщению приложен файл. Размер - 14Kb
29 окт 12, 11:51    [13389617]     Ответить | Цитировать Сообщить модератору
 Re: Зеркалирование и переиндексация  [new]
Crimean
Member

Откуда:
Сообщений: 13148
а все же
переход на асинхронное - не предлагать?
"адаптивную" (только нужных индексов, только когда нужно) перестройку индексов - не предлагать?
секционирование для большой таблицы - не предлагать?
и что у нас с сетевым интерфейсом? и с показателями нагрузки сетки / дисков на зеркале?
29 окт 12, 12:17    [13389809]     Ответить | Цитировать Сообщить модератору
 Re: Зеркалирование и переиндексация  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Crimean
переход на асинхронное - не предлагать?

Специфика БД такова что критична может быть даже одна потерянная транзакция

Crimean
"адаптивную" (только нужных индексов, только когда нужно) перестройку индексов - не предлагать?

Виснет именно на переиндексации крупных(высоконагруженных- в том числе и ввод\вывод) таблиц, как следсвие нужно переиндексировать часто. Конечно тут можно провести исследование как часто используются те или иные индексы, но знаю что они часто используются, т.к. смотрел процы которые юзают эти большие таблицы.

Crimean
секционирование для большой таблицы - не предлагать?

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

Crimean
и что у нас с сетевым интерфейсом? и с показателями нагрузки сетки / дисков на зеркале?

В момент падения производительности счетчики не глядел, смотрел на другие мониторинги. Сейчас зеркалирование отключено поэтому активность дисков на зеркале не посмотреть. Сеть между зеркалом и принципалом - 10Гбит.

Приложу скриншот монитора зеркалирования на момент падения производительности БД

К сообщению приложен файл. Размер - 74Kb
29 окт 12, 13:02    [13390126]     Ответить | Цитировать Сообщить модератору
 Re: Зеркалирование и переиндексация  [new]
Crimean
Member

Откуда:
Сообщений: 13148
> БД храниться на хранилище Eva которая сама распределяет данные

читаем про партишенинг. речь не про распределение по дискам
речь про возможность индексации только части таблицы
таблица при этом может спокойно оставаться в 1 файле
есть свои +/-, разумеется
29 окт 12, 13:27    [13390372]     Ответить | Цитировать Сообщить модератору
 Re: Зеркалирование и переиндексация  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Crimean,

Индексация части таблиц не подходит, т.к. запросы обращаются ко всем данным в таблице, может стоит заменить перестройку индексов на реорганизацию?
30 окт 12, 09:54    [13394779]     Ответить | Цитировать Сообщить модератору
 Re: Зеркалирование и переиндексация  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 888
andrew shalaev
Crimean,

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

а вы как тупо делаете ребульд? на процент фрагментации не смотрите?

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

Разделить по секциям думаю надо,ну и на процент фрагментации смотреть.
Нагрузку по времени смотрели, может надо передвинуть обслуживание, да и не всех таблиц может надо.
30 окт 12, 10:03    [13394835]     Ответить | Цитировать Сообщить модератору
 Re: Зеркалирование и переиндексация  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Эта статья оказалась интересной в плане настройки переиндексации.
2 ноя 12, 09:47    [13412369]     Ответить | Цитировать Сообщить модератору
 Re: Зеркалирование и переиндексация  [new]
aWlad
Member

Откуда: Москва
Сообщений: 42
andrew shalaev,

эта статья дает правильные советы, но партиционировать все равно надо (даже с вашей "евой" и при ваших скоростях) - реиндекс по отдельности, если без него нельзя.
2 ноя 12, 17:13    [13415960]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить