Pull to refresh

Сможет ли Microsoft Azure найти такой индекс, который не смог найти ваш DBA?

Reading time 2 min
Views 4.6K

Небольшой, но интересный анонс для тех, кто пользуется Azure SQL DB.
1-го июля вышел в публичное тестирование Index Advisor для Azure SQL Database.

Index Advisor – инструмент, доступный всем пользователям Azure SQL DB (V12) для создания non-clustered индексов. Index Advisor (IA) выдаёт список рекомендуемых индексов для вашей базы данных. Помогает их создать, а также автоматически протестировать! Анализируя нагрузку запросов и характер доступа к данным, IA выбирает те индексы, которые, по его мнению, принесут наибольший прирост производительности индивидуально для вашего сценария.



Так выглядит главная панель Index Advisor



На портале Microsoft Azure, помощник показывает таблицу с рекомендуемыми индексами. Каждая запись характеризует индекс по положительному влиянию на базу данных, показывает колонки и таблицу на которых будет создан индекс, а также время создание рекомендации.

В чём привлекательность Index Advisor?


Index Advisor работает совершенно прозрачно для пользователя. Сначала он подбирает вам список из нескольких индексов, создание которых максимально повысит производительность базы данных.
Затем, вы «заказываете» создание индекса, и в течение 48 часов вы получите отчет о проделанной работе.

Почему нужно 48 часов, чтобы создать индекс?


Все дело в том, что после создания индекса, Index Advisor проверит насколько хорошо этот он вписался в вашу рабочую нагрузку и, если результат негативный (производительность упала), Index Advisor автоматически удалит созданный им индекс.
48 часов, это максимально время, обычно операция заканчивается быстрее. Всё это без всякого вмешательства со стороны, и без потери соединения (ну и конечно данных).

Что это значит для меня?


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

Как мне попробовать?


Для того что бы попробовать Index Advisor вам необходимо:
  • Azure SQL Database на сервере V12
  • База данных которая использовалась в течении некоторого времени.

Важно отметить, что пока Index Advisor даёт рекомендации и позволяет создавать только non-clustered индексы.

Поехали:


  1. Заходим на портал
  2. Выбираем базу данных и в разделе Operations записываемся на публичное тестирование Index Advisor.
  3. Если у вас уже есть рекомендации, поздравляю! Вам повезло, сразу приступайте к оптимизации вашей базы данных.
  4. В противном случае, придётся подождать пару дней, пока Index Advisor накопит достаточно информации.
  5. Выбираем индекс из первой таблицы и нажимаем “Create Index” на панели справа.
    (Для любопытных: Если нажать “View Script”, то можно увидеть код матрицы посмотреть какой SQL запрос будет выполнен для создания индекса)



Когда создание и тестирование закончится, индекс появится в таблице оконченных операций.



Справа, результативность индекса: 2 запроса выполняютсяна 42% быстрее. Индекс занимает 22MB

Вот и всё!

Эй, а что это за …? Или ой, как круто!


Все чаще Микрософт старается слушать своих пользователей предоставляя разные механизмы обратной связи.
Если вам понравился Index Advisor и его рекомендации, не стесняйтесь об этом сказать. Ну а если он напортачил, или предложил создать глупый индекс, не стесняйтесь вдвойне и сообщите, нажав кнопку “Feedback”.



Документация на MSDN
Disclaimer: Я участвую в работе команды Index Advisor и постараюсь ответь на ваши вопросы, если они появятся.
Tags:
Hubs:
+9
Comments 15
Comments Comments 15

Articles