|
MSSQL: Реиндексация таблиц через план обслуживания
| ☑ |
0
micronick
28.09.18
✎
13:41
|
Подскажите, каким образом правильно настроить реиндексацию таблиц по расписанию в MSSQL?
Конкретно вопрос вот в чем: Реиндексация блокирует таблицы, а если в этот момент кто-то залезет в базу или запустится какое-то фоновое задание, что будет с этим регламентным заданием в MSSQL? Оно остановится и выдаст ошибку, что таблица занята, либо будет ждать, когда она освободится?
Корректно ли будет для успешного выполнения операции предварительно заблокировать подключение к базе и отключить выполнение регламентных заданий в фоне, либо и без этого реиндексация в любом случае пройдет?
|
|
1
DmitrO
28.09.18
✎
13:43
|
Предлагаю делать реиндексацию по ночам, когда все кожаные мешки спят, а в сети властвуют роботы.
|
|
2
micronick
28.09.18
✎
13:48
|
(1) Понятное дело, что делать надо ночью. Но не стопарнет ли реиндексацию чей-то случайный заход в базу или начавшееся фоновое задание?
|
|
3
Cool_Profi
28.09.18
✎
13:48
|
Ставим ентерпрайз версию и в настройках индексации включаем опцию online
|
|
4
micronick
28.09.18
✎
13:56
|
(3) Есть такая опция:
Поясните, что она даст? Не заблокирует таблицу и даст возможность продолжать работать в ней, пока идет реиндексация?
И ниже опция, что делать с типом индексов, которые не поддерживают онлайн реиндексацию - переиндексировать оффлайн - это значит, что таблица заблокируется? Что опять же будет в случае, описанном в (0) - если она в этот момент будет занята чем-то?
|
|
5
ADirks
28.09.18
✎
14:10
|
(4) да в пень эти опции
возьми набор от
там намного гибче настройки
|
|
6
Cool_Profi
28.09.18
✎
14:23
|
(4) Что будет - запрос к ней будет ждать. Достигнет таймаута - отвалится
|
|