Перейти к основному содержимому
Версия: 6.2

Статистика выполнения запроса

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

Содержание​

Включение статистики​

При обращении к API поиска параметр calculateExecutionCost принимает значения ON и OFF. Значение по умолчанию — OFF. При ON сведения о выполнении возвращаются в service_data.

Примеры запросов приведены в API SME.

Время и документы​

ПоказательЗначение
tookОбщее время обработки запроса в SME, в миллисекундах
execution_cost[].duration_secДлительность этапа, в секундах
execution_cost[].input_countКоличество входящих документов этапа
execution_cost[].output_countКоличество исходящих документов этапа
execution_cost[].processing_bytesУчтенный объем обрабатываемых данных этапа, в байтах

Этапы могут содержать вложенные этапы. Их время может входить во время родительского этапа.

processing_bytes рассчитывается при включенных лимитах. При выключенных лимитах значение отсутствует или равно null.

Отсутствующее значение или null означает, что показатель не рассчитан или недоступен.

Сводка по хранилищам​

Блок storage_summary содержит общие сведения и список обращений, сгруппированных по хранилищам.

ПолеЗначение
qsizeСумма конечных эффективных размеров выборки по обращениям к хранилищам
qsize_unboundedПризнак наличия хотя бы одного обращения без ограничения количества документов
storage_duration_secСуммарная длительность обращений к хранилищам, в секундах
storages[].typeТип хранилища
storages[].sourcesИсточники данных
storages[].selected_countКоличество выбранных документов
storages[].available_countСумма эффективных значений qsize в строке сводки; при безлимитном обращении — -1
storages[].storage_duration_secondsДлительность обращений в строке сводки, в секундах

Эффективный qsize учитывает примененные ограничения. available_count не показывает общее число подходящих документов в хранилище. Например, если найден миллион событий, а эффективный qsize=100, обращение добавит в available_count значение 100.

Общий qsize складывается только из конечных эффективных размеров обращений. Если все обращения безлимитные, он равен -1. При сочетании конечных и безлимитных обращений возвращается сумма конечных размеров, а qsize_unbounded равен true.

Длительности параллельных обращений складываются. Например, для трех обращений длительностью по 2 секунды суммарное время работы с хранилищами составит 6 секунд, хотя сам запрос может завершиться примерно за 2 секунды.

Для ClickHouse после получения серверных показателей время в сводке может уточняться.

Показатели ClickHouse​

В фоновом поиске calculateExecutionCost=ON включает статистику этапов. Контекст обновления серверных показателей ClickHouse для фонового и гибридного режима не создается. Обновление показателей для таких результатов недоступно.

Информация собирается по всем доступным узлам ClickHouse. Показатели возвращаются в storage_resource_usage.

ПолеЗначениеЕдиница
cpu_time_usПроцессорное время выполненияМикросекунды
peak_memory_bytesОценка пикового потребления памяти по собранным исполнениямБайты
data_info.read_rowsКоличество прочитанных строкСтроки
data_info.read_bytesОбъем прочитанных данныхБайты

CPU отражает процессорное время. При параллельной работе оно может превышать фактически прошедшее время.

ClickHouse записывает журнал выполнения асинхронно. Поэтому показатели могут появиться позже результатов поиска. Для их получения используется обновление телеметрии.

Если записи еще не появились, повторите обновление позже. Поля message и error_code, если они присутствуют, поясняют состояние сбора. Показатели возвращаются для найденных записей о выполнениях. Записи о дочерних выполнениях могут появиться позже, а недоступные узлы могут быть пропущены.

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

Идентификатор обновления действует ограниченное время. Если он стал недоступен, для получения нового идентификатора нужно выполнить поиск заново.

Статистика и лимиты​

Сбор статистики и применение лимитов включаются отдельно. Длительности и количество документов рассчитываются при включенной статистике независимо от включения лимитов. Для расчета processing_bytes дополнительно нужно включить лимиты.

Если лимит сократил выборку или временной диапазон, статистика описывает фактически выполненный поиск. При сравнении запросов учитывайте предупреждения об ограничениях.

Настройки описаны в разделе Лимиты поиска.