Настройка производительности запросов с помощью помощника по индексу в Azure DocumentDB (предварительная версия)

Помощник по индексу — это встроенный помощник по настройке производительности для Azure DocumentDB, который помогает диагностировать медленные запросы, понимать поведение выполнения запросов и реализовывать оптимизированные стратегии индексов. Консультант по индексам анализирует структуру запросов вместе со статистикой коллекции и индексов. Затем помощник по индексу создает четкие рекомендации, управляемые данными, с понятными объяснениями, которые описывают, почему конкретный индекс поможет повысить производительность.

Преимущества помощника по индексу

Ниже приведены некоторые преимущества использования Консультанта по индексам.

  • Определите узкие места производительности и неэффективные запросы.
  • Получите практические рекомендации по индексам, расставленные по приоритету в зависимости от влияния на производительность.
  • Понять, почему индекс имеет значение с помощью четких, простых английских объяснений.
  • Немедленно примените рекомендации по индексу в расширении.
  • Автоматическое сравнение производительности до и после создания индекса.

Варианты использования Советника по Индексу

Помощник по индексу поддерживает различные шаблоны запросов и сценарии оптимизации, чтобы повысить производительность базы данных.

Scenario Description
Равенство / Запрос диапазона Обрабатывает простые фильтры равенства или диапазона (например, field = value или field > value).
Составной фильтр / покрывающий запрос / соединение посредством поиска Анализирует запросы, включающие несколько условий фильтра или соединения, которые можно оптимизировать с помощью составных или покрытых индексов для поиска запросов.
Составной индекс Предлагает индексы с несколькими полями (составными) для поддержки сложных запросов поиска и сортировки
Сортировать только Определяет, когда можно улучшить или охватить операцию сортировки индексом.
Фильтрация и сортировка / pushdown индекса Рекомендует структуры индексов, позволяющие эффективно обрабатывать фильтрацию и сортировку в пределах слоя индекса, уменьшая сканирование документов.
Существующее покрытие индекса Поддерживается для запросов поиска; Если индекс уже существует, новый индекс не предлагается.

Если сценарий запроса выходит за рамки этих шаблонов, обратитесь к группе Azure DocumentDB за помощью в конкретном варианте использования.

Предпосылки

  • Существующий кластер Azure DocumentDB

  • Visual Studio Code

    • Установленное расширение DocumentDB

    • Расширение GitHub Copilot, установленное с действующей подпиской на GitHub Copilot

Подключение к кластеру Azure DocumentDB

Подключитесь к кластеру Azure DocumentDB в расширении Visual Studio Code.

  1. Откройте расширение DocumentDB для Visual Studio Code на панели действий.

  2. Нажмите кнопку "Добавить подключение", чтобы создать новое подключение к кластеру.

  3. Выберите метод проверки подлинности и укажите необходимые сведения о подключении.

  4. Проверьте подключение, чтобы убедиться, что он работает правильно.

  5. Разверните кластер, чтобы просмотреть доступные базы данных и коллекции.

Открытие запроса для анализа

Начните анализ производительности с помощью помощника по индексу, открыв запрос в расширении DocumentDB.

  1. Откройте запрос "Поиск", "Агрегат" или " Число " в расширении.

  2. Перейдите на вкладку "Аналитика запросов ".

  3. Запустите запрос. На панели отображаются ключевые показатели производительности, такие как время выполнения, возвращенные документы, проверенные ключи и проверенные документы. Помощник по индексу собирает и анализирует план выполнения запросов и статистику из подключенного кластера (стандартный режим) или из предварительно загруженных данных (режим предварительной загрузки). Языковая модель (GitHub Copilot) изучает санизированный план и статистику, чтобы рекомендовать оптимальные индексы.

    Important

    Все значения литеральных запросов (например, сообщения электронной почты, числа или текст) заменяются <value> заполнителями перед отправкой для анализа.

    Ниже приведен пример очистки:

    • Несанитизированный запрос, который не отправляется

      {
        "filter": {
          "email": "john.doe@example.com",
          "age": { "$gt": 25 }
        }
      }
      
    • Санитизированный запрос, который отправляется

      {
        "filter": {
          "email": "<value>",
          "age": { "$gt": "<value>" }
        }
      }
      
  4. Примените рекомендацию напрямую; расширение создает индекс и повторно запускает запрос для обновления метрик производительности.

  5. Просмотрите сводки по статистике запросов и плану выполнения .

    Снимок экрана: раздел статистики запросов со сведениями, включая время выполнения, количество возвращенных документов и ключей/документов, которые были рассмотрены.

  6. Изучите список возможностей оптимизации . Каждая рекомендация содержит понятное для человека объяснение и предлагаемое определение индекса.

    Снимок экрана: возможности оптимизации со списком рекомендаций для текущего запроса.

  7. Нажмите кнопку "Применить" , чтобы создать рекомендуемый индекс. Создание индекса выполняется асинхронно в фоновом режиме. После завершения панель автоматически обновляется с обновленными результатами. После создания индекса помощник по индексу повторно запускает анализ и обновляет метрики, чтобы сравнить улучшения производительности.

Ограничения Index Advisor

Ниже приведены ограничения функции Помощника по индексу.

  • Региональная доступность: Помощник по индексу в настоящее время доступен только в регионах США и Канады .
  • Управление индексами: Помощник по индексу рекомендует только создавать новые индексы; В настоящее время не рекомендуется удалять или скрывать существующие индексы.
  • Покрытие сценариев: В этом выпуске оптимизированы только поддерживаемые сценарии, перечисленные ранее. Для других типов запросов обратитесь к команде Azure DocumentDB или ознакомьтесь с рекомендациями по индексированию.
  • Конфиденциальность данных: Рассматривайте имена баз данных и коллекций как метаданные, тем не менее изучайте внутренние политики классификации данных.

Рекомендации по использованию помощника по индексу

Ниже приведены рекомендации по использованию функции Помощника по индексу.

  • Следуйте политикам управления данными вашей организации при экспорте или совместном использовании статистики.
  • Ознакомьтесь с рекомендациями по индексу перед применением, чтобы убедиться, что они соответствуют требованиям к рабочей нагрузке и затратам.
  • Избегайте ручного удаления индексов без проверки зависимостей или консультаций с командой Azure DocumentDB.
  • Если шаблоны запросов не поддерживаются, ознакомьтесь с рекомендациями по индексированию и поддержкой.

Соображения для помощника индекса

Помощник по индексу позволяет оптимизировать запросы при защите конфиденциальности данных на каждом шаге.

В этом списке показаны данные, собранные расширением:

  • Планы выполнения запросов — структурные сведения и метрики производительности.
  • Статистика сбора — количество документов, размеров данных и индексов, а также количество индексов.
  • Сведения об индексе — имена индексов , шаблоны ключей и метрики использования.
  • Метаданные кластера — ограниченные сведения, такие как состояние размещения Azure и тип API.

Соответствие требованиям и защита данных

Чтобы обеспечить соответствие требованиям и защиту данных, система реализует следующие средства защиты перед отправкой любой информации для анализа:

  • Замена всех литеральных значений в запросах и планах выполнения<value>.
  • Сохранение имен полей и операторов запросов (например email, $gt, $in) для сохранения контекста.
  • Полностью санировать планы выполнения, чтобы обеспечить отсутствие конфиденциальных или персональных данных.
  • Сохранение метрик производительности (например, nReturned или executionTimeMillis), поскольку они не содержат буквальных значений из ваших данных.
  • Передаются только санизированная структура, статистика и метаданные, необходимые для анализа, и никогда не передаются примеры документов или необработанные значения.
  • Подвергать любые будущие функции, которые требуют неочищенных данных, полной проверке конфиденциальности и соответствия требованиям Microsoft.

Помощник по индексу анализирует только структуру запросов и характеристики производительности, никогда не ваши фактические данные.