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

Компонент SQL Server Database Engine автоматически поддерживает состояние индексов при выполнении операций вставки, обновления или удаления в отношении базовых данных. Со временем эти изменения могут привести к тому, что данные в индексе окажутся "разбросанными" по базе данных (фрагментированными). Фрагментация индексов негативно сказывается на скорость обработки данных.

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

{% hint style="info" %}
При необходимости создайте регламентное задание в SQL Server Configuration Manager и произведите настройки его расписания, *например, ежедневное в 03:00:00.*
{% endhint %}

![](/files/-LtPhyw-eljksIku3OPY)

Скачайте три файла и запустите их в окне SQL Management Studio в следующем порядке:

1. IndexOptimize.sql
2. CommandExecute.sql
3. LogOptimize.sql

{% file src="/files/-LtPhS5jRBq79vrVX\_mY" %}

{% file src="/files/-LtPhYYJeX4O7ckfaXF2" %}

{% file src="/files/-LtPh\_ki12Qqedx9vFnk" %}

В базе данных \[master] в разделе пользовательских хранимых процедур появятся соответствующие процедуры.

Для дефрагментации и обновления статистики в нужной базе данных выполните следующий код в SQL Management Studio

```sql
EXEC dbo.IndexOptimize @Databases = N'ИМЯ ВАШЕЙ БАЗЫ ДАННЫХ',
                       @UpdateStatistics = N'ALL';
```

или

```sql
EXEC dbo.IndexOptimize @Databases = N'ALL_DATABASES',
                       @UpdateStatistics = N'ALL';
```

для всех баз, размещенных на сервере.

В процессе выполнения в логе будет доступна информация о состоянии дефрагментируемых индексов и обновленных статистиках.

Для сжатия файла .log воспользуйтесь процедурой LogOptimize


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help-zetaweb.zetasoft.ru/reglamentnye-operacii.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
