Сборщик типа «Активность запросов»
«Активность запросов» — это пользовательский тип сборщика, используемый в одном из стандартных наборов сбора системных данных — «Статистика запросов».
Этот тип сборщика используется для сбора сведений о статистике и активности запросов, а также плана и текста запросов, соответствующих стандартным критериям. Если с помощью этого типа сборщика создан собственный набор сбора, он будет собирать те же данные, что и набор сбора «Статистика запросов». Поэтому рекомендуется использовать стандартный набор сбора «Статистика запросов».
Архитектура и обработка
Тип сборщика «Активность запросов» состоит из следующих элементов.
Схема входных параметров (внутренняя)
Пакет служб SSIS для сбора данных (QueryActivityCollect.dtsx)
Пакет служб SSIS для передачи данных (QueryActivityUpload.dtsx)
Кроме того, этот тип сборщика использует пользовательские задачи или преобразования для анализа и выбора данных, направляемых в хранилище данных управления.
Тип сборщика «Активность запросов» выполняет следующие операции.
Собирает образцы dm_exec_requests, dm_exec_sessions и других выбранных связанных динамических административных представлений. Это реализовано в едином запросе. Сбор данных производится с частотой, указанной для элемента сбора.
Собирает моментальные снимки динамического административного представления dm_exec_query_stats с частотой, равной частоте передачи набора сбора. По умолчанию частота передачи набора сбора «Статистика запросов» составляет 15 минут.
Стадия сбора
В следующей таблице изображен запрос, используемый на стадии сбора. Этот запрос определяется в пакете QueryActivityCollect.dtsx служб SSIS.
Частота сбора |
10 секунд |
Запрос |
|
Стадия передачи
На этапе передачи собранные данные анализируются, чтобы определить данные, которые будут сохранены в хранилище данных управления. Этот анализ определяет набор статистики запросов, планов запросов и их текстов, которые необходимо сохранить.
Ключевым элементом является алгоритм, который выбирает запросы и планы запросов для сохранения в хранилище данных. Ниже перечислены этапы работы этого алгоритма.
Собирает моментальный снимок представления sys.dm_exec_query_stats. Сбор этого моментального снимка выполняется с частотой, равной частоте передачи набора сбора. (По умолчанию это значение равно 15 минутам.)
Извлекает последний моментальный снимок (полученный 15 минутами ранее) для сравнения с новым моментальным снимком. Последний моментальный снимок помещается в локальный кэш и его не обязательно извлекать из хранилища управляющих данных.
Выбирает три верхних запроса из каждого моментального снимка по следующим метрикам.
Истекшее время
Рабочее время
Число логических операций чтения
Число логических операций записи
Число физических операций записи
Число выполнений
При этом получается 6 x 3 дескрипторов sql_handle и plan_handle.
Определяет уникальные дескрипторы sql_handle и plan_handle.
Выполняет операцию пересечения этого результата со значениями sql_handle и plan_handle, которые хранятся в хранилище данных.
Получает с сервера план и текст, соответствующие новым дескрипторам sql_handle и plan_handle. Если план или текст не удается найти (они могут быть уже удалены из локального кэша), сохраните дескрипторы в хранилище данных управления.
Для каждого собранного текста sql_handle нормализует текст (например, удаляет параметры и литералы) и вычисляет уникальное хэш-значение для нормализованного текста. Сохраняет нормализованный текст, хэш-значение и сопоставление с исходным дескриптором sql_handle в хранилище данных управления.
В следующей таблице показан запрос, используемый для получения моментальных снимков и их анализа, а также для последующей передачи данных в хранилище данных управления. Этот запрос определяется в пакете QueryActivityUpload.dtsx служб SSIS.
Запрос |
|
Вывод запроса |
snapshots.query_stats, snapshots.notable_query_text и snapshots.notable_query_plan |
Журнал изменений
Обновления |
---|
Добавлены разделы «Стадия сбора» и «Стадия передачи». |
Заменены критериев, в соответствии с которыми данные будут сохраняться в хранилище данных управления на стадии передачи с запросом, определенным в пакете QueryActivityUpload.dtsx служб SSIS. |
См. также