MS SQL Server, адаптация логических объектов под текущую нагрузку

MS SQL Server. Появилась возможность на одном из серверов реализовать свою давнюю идею.

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

Что было сделано:

В цикле специальный скрипт оценивал состояние сервера, в случае если фиксировались проблемы с производительностью запускался второй скрипт. Он выделял из кэша планов запросы выполненные в последние 10 минут, выделял из них Missing Index и формировал скрипт. Третий скрипт оценивал размерность объекта для предлагаемого индекса и в случае если размерность была менее 100 мегабайт индекс создавался.

За сутки было порядка двух десятков состояний при которых выделялись и применялись новые индексы, всего создано 66 индексов.

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

Потрясающая штука получилась- адаптация логической структуры, логических объектов под текущую нагрузку.

MS SQL Server. There was an opportunity on one of the servers to realize its long-standing idea.

Namely, the server had obvious performance problems. One of the reasons was the imperfection of logical structures, clearly lacking indices.

What was done:

In the loop, a special script evaluated the state of the server, in the event that performance problems were fixed, the second script was launched. He extracted the queries from the plan cache in the last 10 minutes, selected the Missing Index from them and formed a script. The third script estimated the dimension of the object for the proposed index, and if the dimension was less than 100 megabytes, the index was created.

For a day there were about two dozen states at which new indices were allocated and applied, in total 66 indices were created.

Critical violations in the server are not revealed, on the contrary, after a day, the performance problems have ceased. It is simply dangerous to create large indices thoughtlessly, but small, limited size, you can. At the same time, you need to regularly evaluate usage statistics and delete unused and unnecessarily updated ones.

A tremendous thing has turned out-the adaptation of the logical structure, logical objects for the current load.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *