Чи зможе Microsoft Azure знайти такий індекс, який не зміг знайти ваш DBA?

Невеликий, але цікавий анонс для тих, хто користується 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 і постараюся відповісти на ваші запитання, якщо вони з'являться.