Обслуживание баз данных

Компонент SQL Server Database Engine автоматически поддерживает состояние индексов при выполнении операций вставки, обновления или удаления в отношении базовых данных. Со временем эти изменения могут привести к тому, что данные в индексе окажутся "разбросанными" по базе данных (фрагментированными). Фрагментация индексов негативно сказывается на скорость обработки данных.
Для дефрагментации данных, обновления статистики и оптимизации лога предлагаем воспользоваться готовыми скриптами, которые вы можете включить в ежедневный план обслуживания вашего сервера баз данных.
При необходимости создайте регламентное задание в SQL Server Configuration Manager и произведите настройки его расписания, например, ежедневное в 03:00:00.
Скачайте три файла и запустите их в окне SQL Management Studio в следующем порядке:
  1. 1.
    IndexOptimize.sql
  2. 2.
    CommandExecute.sql
  3. 3.
    LogOptimize.sql
IndexOptimize.sql
261KB
Binary
CommandExecute.sql
18KB
Binary
LogOptimize.sql
7KB
Binary
В базе данных [master] в разделе пользовательских хранимых процедур появятся соответствующие процедуры.
Для дефрагментации и обновления статистики в нужной базе данных выполните следующий код в SQL Management Studio
EXEC dbo.IndexOptimize @Databases = N'ИМЯ ВАШЕЙ БАЗЫ ДАННЫХ',
@UpdateStatistics = N'ALL';
или
EXEC dbo.IndexOptimize @Databases = N'ALL_DATABASES',
@UpdateStatistics = N'ALL';
для всех баз, размещенных на сервере.
В процессе выполнения в логе будет доступна информация о состоянии дефрагментируемых индексов и обновленных статистиках.
Для сжатия файла .log воспользуйтесь процедурой LogOptimize