Когда и как восстанавливать индексы в базе данных SQL Server
Основная функция администратора базы данных (DBA) – поддерживать базу данных. Индексы играют важную роль, поскольку они являются одним из важных аспектов высокой производительности SQL Server. В основном SQL Server поддерживает индексы после любых изменений данных, однако обслуживание индексов по-прежнему требуется из-за фрагментации. Фрагментация индекса влияет на производительность SQL Server, поэтому рекомендуется следить за уровнем фрагментации.
Фрагментация индекса происходит в виде разрывов на страницах данных и логической фрагментации. Таким образом, единственный способ удалить ненужное пространство и логическую фрагментацию – это перестроить индексы в SQL Server.
В следующем сегменте мы собираемся обсудить пошаговую процедуру, позволяющую пользователям понять, как полностью перестроить индексы в SQL Server. Перед этим сообщите нам, когда и как часто следует восстанавливать индексы на SQL-сервере.
Когда перестраивать индексы в SQL Server?
По мере того как индексы становятся фрагментированными, производительность всех индексов снижается. Задача «Перестроить индекс» – очень хороший вариант для перестройки индексов, чтобы удалить логическую фрагментацию и свободное пространство, а также обновить статистику. Важно запланировать задачи для своевременного восстановления индексов в базе данных SQL Server.
В противном случае восстановление индексов в SQL Server станет ресурсоемкой задачей. Более того, если индекс будет перестроен, на него могут быть наложены блокировки, предотвращающие доступ к нему во время перестройки. Если кто-то попытается получить доступ к индексу для получения фактических результатов, он может быть временно заблокирован до завершения перестройки. Например, задача «Перестроить индекс» проверяет активность в автономном режиме и запускается, когда некоторые люди хотят получить доступ к базе данных. Обычно это означает, что во время периода обслуживания расписания.
Ночью, если необходимо: Если индекс быстро фрагментируется, и у пользователей есть окно обслуживания каждую ночь, которое позволяет запускать задачу Rebuild Index со всеми другими задачами обслуживания; тогда сделай так. Фрагментация индекса снизит общую производительность каждого индекса. Таким образом, у пользователей есть ночное окно обслуживания, восстановление не повредит, а также поможет повысить производительность сервера.
Еженедельно, минимум: Если пользователи не могут выполнять эту задачу каждую ночь, то, как минимум, она будет выполняться один раз в неделю в течение периода обслуживания. Если пользователи могут ждать более недели, они рискуют снизить производительность SQL из-за отрицательного эффекта пустого пространства и логической фрагментации.
Рассмотрим другие альтернативы: Если у пользователей нет периода обслуживания, достаточного для выполнения задачи хотя бы раз в неделю, они могут рассмотреть другие альтернативы, например:
Примечание: Если вы хотите восстановить поврежденные индексы, воспользуйтесь помощью Восстановление базы данных SQL Программного обеспечения.
Как часто нужно перестраивать индексы в SQL Server?
Скорость индексных фрагментов зависит от того, как они используются, и будет варьироваться от одной базы данных к другой. Рассмотрим процент фрагментации индекса:
- avg_page_space_used_in_percent: В этом столбце может храниться общий объем пространства, используемого на определенной странице. Например, для конкретного индекса может использоваться 50% пространства, что означает, что на странице данных доступна только половина пространства, в среднем он используется для сохранения строк данных.
- avg_fragmentation_in_percent: В этом столбце может храниться степень логической фрагментации индекса в процентах. Например, конкретный индекс может быть фрагментирован на 80%, что означает, что в среднем 80% физического упорядочения страниц данных не соответствует логическому.
Если пользователи смогут отслеживать эти данные в течение определенного периода времени, они будут определять, насколько быстро все фрагменты индексируются и как часто вы должны их перестраивать. Но на этом уровне есть вероятность, что пользователи смогут использовать методы сценариев для восстановления всех индексов вместо мастера плана обслуживания.
Как перестроить индексы в SQL Server вручную
Выполните эти два ручных подхода, которые помогут восстановить индексы базы данных сервера SQL. Посмотри:
- Используя MS SQL Server Management Studio:
а) Под Обозреватель объектов панель, разверните SQL Server, а затем узел “Базы данных”
б) Затем щелкните конкретную базу данных с фрагментированным индексом.
c) Разверните каждый узел таблицы и таблицу с фрагментированным индексом
г) Раскройте конкретную таблицу >> Индексы узел
e) Теперь щелкните правой кнопкой мыши фрагментированный индекс и выберите Восстановить вариант
е) Нажмите кнопку ОК и дождитесь завершения процесса.
- С помощью Transact-SQL перестроить индексы в таблице
Предоставьте подходящую базу данных и табличную информацию. После этого вы можете выполнить следующий код в SSMS (SQL Server Management Studio), чтобы перестроить индексы в SQL Server для конкретной таблицы:
Подведение итогов
Фрагментация индекса – критическая проблема, поскольку она может вызвать проблемы с производительностью в базе данных SQL Server, если они не будут перестроены вовремя. Один из простых способов устранить фрагментацию индекса – регулярно выполнять задачу «Перестроить индекс», которая помогает перестроить все индексы в базе данных SQL и обеспечить согласованную производительность. Таким образом, в этом блоге мы обсудили два разных способа, которые помогут вам понять, как восстанавливать индексы на сервере SQL. Убедитесь, что вы очень внимательно следите за каждым шагом.