2009-08-18 4 views
1

У нас есть недельный план обслуживания, чтобы сократить все пользовательские базы данных и перестроить их индексы. Это работает нормально до тех пор, пока мы не создадим базу данных только для чтения, теперь каждый раз, когда план запускается с ошибкой, когда он начинает обрабатывать эту базу данных из-за состояния только для чтения.SQL Server 2005 Усадка и восстановление индексов

Насколько я вижу, у нас есть две возможности: удалить флаг только для чтения из базы данных, это возможно, но поскольку база данных обновляется только раз в квартал, это имеет смысл с точки зрения производительности, чтобы использовать только для чтения. Или вручную выберите базу данных, которую должен выполнить план, т. Е. Все базы данных пользователей, кроме только для чтения, для этого требуется, чтобы люди не задумывались о добавлении новых планов в план.

Есть ли у кого-нибудь предложения по улучшению этого способа?

Благодаря

Нил

ответ

1

почему вы сужая базу данных, в первую очередь? также нет необходимости поддерживать прочтение подобных db.

1

Я бы удалил только флаг чтения, если вы не хотите настраивать план maint.

Почему вы тоже сокращаете DB? Если база данных растет до заданного размера, то, вероятно, это естественный текущий размер.

Также помните, что для восстановления индекса (эмпирическое правило) требуется свободное пространство 120% от размера целевой таблицы. Например, 500 МБ для стола требуется 600 МБ свободного места.

Это бессмысленно сжиматься затем восстановить ... и вы будете иметь ужасающие фрагментации файлов слишком

1

Я полагаю, мог бы изменить план обслуживания, чтобы начать с «Execute T-SQL Statement» шаг, который удаляет ReadOnly (ALTER DATABASE database-name SET READ_WRITE) и добавьте последний шаг для его сброса: ALTER DATABASE имя базы данных SET READ_ONLY

 Смежные вопросы

  • Нет связанных вопросов^_^