Производительность запросов
Время выполнения запроса и потребление ресурсов зависят от нескольких факторов:
- Количество и размер виртуальных таблиц, определенные контекстными ссылками запроса. Например, в инсталляции 1000 устройств нагрузка процессора и памяти, обусловленные контекстной ссылкой
users.*.devices.*:temperature
, будет в 1000 раз больше, чем одна из ссылокusers.admin.devices.meter1:temperature
. - Характер переменных или функций контекстов сервера, на которые ссылается запрос. Для получения более подробной информации см. производительность переменных и производительность функций.
- Сложность запроса (например, использование объединений, функций и т.д.)
Отладка запроса - это способ выяснить, какие этапы выполнения запроса замедлены.
Использование индексов
Подобно другим SQL запросам, производительность запросов SberMobile существенно зависит от наличия индексов.
Индексы создаются автоматически каждый раз при выполнении запроса для ключевых полей переменных или результатов выполнения функций, являющихся исходными данными для запроса.
Обратитесь к разделу Ключевые поля для получения дополнительной информации.
Функционирование в распределенной архитектуре
Запросы оптимизируются особым образом для работы в распределенной архитектуре. Запросы к данным контекстов, подключенных по распределённой архитектуре, выполняются параллельно при построении таблицы по контекстной ссылке. Если многочисленные распределенные контексты расположены на разных серверах, все серверы будут параллельно готовить и отсылать свою часть данных.
Работа запросов в распределенной архитектуре имеет много общего с концепцией MapReduce:
- Удаленные серверы готовят данные частями, загружая, фильтруя, сортируя и агрегируя данные на своей стороне
- Изначальный запрос, работающий на сервере верхнего уровня (потребителе), объединяет входящие части данных и осуществляет дополнительную сортировку, фильтрацию и агрегирование
- Более того, запрос может объединять итоговый набор данных с другими наборами данных, поступающими с локального сервера или через распределённую архитектуру