GET_ENTITY_STATISTICS
Содержание раздела
Поддерживается в версиях: 6.5 / 6.4 / 6.3 / 6.2 / 6.1 / 6.0 / 5.8 / 5.7.
Запрос возвращает статистику обработки запросов, обращенных к данным логических сущностей.
Получить статистику можно по следующим срезам:
- по одной сущности,
- по всем сущностям логической базы данных,
- по всем сущностям всех логических баз данных окружения.
Доступна статистика по следующим сущностям:
- логическим таблицам,
- логическим представлениям,
- материализованным представлениям,
- внешним readable-таблицам,
- внешним writable-таблицам.
Статистика, кроме значений ROWS_COUNT
и ROWS_COUNT_DELTA
, хранится в операционной памяти сервера ноды и обнуляется при его рестарте. Значения ROWS_COUNT
и ROWS_COUNT_DELTA
хранятся в Zookeeper и остаются без изменений при рестарте сервера ноды.
Успешный ответ содержит объект ResultSet, где каждая строка — это статистика по одной логической сущности. Неуспешный ответ содержит исключение. Запрос, который обращался к нескольким сущностям, учитывается в статистике каждой из них.
Статистика делится по следующим категориям запросов:
READ
— запросы чтения данных (SELECT),UPLOAD
— запросы загрузки данных (INSERT SELECT FROM external_table),WRITE
— запросы обновления данных (INSERT VALUES, UPSERT VALUES, INSERT SELECT, DELETE),DOWNLOAD
— запросы выгрузки данных (INSERT INTO download_external_table).
Система не ведет статистику по внешним таблицам загрузки и выгрузки. Это означает, что запросы категории UPLOAD
учитываются только в статистике логических таблиц и внешних writable-таблиц, а запросы категории DOWNLOAD
— в статистике логических таблиц, логических и материализованных представлений, а также внешних readable-таблиц.
По каждой категории запросов в ответе возвращается количество успешных и неуспешных запросов, общее время выполнения успешных запросов и интервал времени, в который выполнялись запросы.
Под неуспешным подразумевается запрос, который прошел первичную проверку синтаксиса, но позже вернул ошибку. Примеры неуспешных запросов: запрос, вернувший ошибку из датасорса; запрос на вставку некорректных данных; запрос к несуществующей сущности.
Статистика содержит показатели за все время работы ноды с последнего запуска (перезапуска). Чтобы собрать статистику о средних показателях, выполните запросы GET_ENTITY_STATISTICS
через заданный интервал и рассчитайте среднее значение. Например, среднее время выполнения запросов на чтение можно посчитать так: (READ_DURATION_2 - READ_DURATION_1) / (READ_COUNT_2 - READ_COUNT_1)
. Где READ_DURATION_2
и READ_DURATION_1
— время выполнения запросов в конце и начале периода, а READ_COUNT_2
и READ_COUNT_1
— количество запросов в конце и начале периода.
Статистику можно обнулить запросом RESET_STATISTICS.
При удалении сущностей система не удаляет их статистику.
Если режим работы с системой предполагает постоянное создание и удаление логических сущностей, рекомендуется отключить сбор статистики. В противном случае оперативная память сервера может переполниться. Чтобы отключить сбор статистики на ноде, в конфигурации ноды установите значение параметра CORE_STATISTICS_ENABLED
равным false
.
Параметры статистики
Запрос возвращает следующие параметры статистики:
ENTITY_CATALOG
-
Каталог, которому принадлежит сущность. Всегда имеет значение
null
. ENTITY_SCHEMA
-
Имя логической базы данных, к которой относится сущность.
ENTITY_NAME
-
Имя логической сущности, по которой запрошена информация.
READ_COUNT
-
Количество успешных запросов на чтение данных из этой сущности. Для внешних writable-таблиц значение всегда равно 0.
READ_DURATION
-
Общее время выполнения (в миллисекундах) успешных запросов на чтение данных из этой сущности. Для внешних writable-таблиц значение всегда равно 0.
READ_ERROR_COUNT
-
Количество неуспешных запросов на чтение данных из этой сущности. Для внешних writable-таблиц значение всегда равно 0.
FIRST_READ
-
Дата и время первого запроса на чтение данных из этой сущности. Для внешних writable-таблиц значение всегда равно
null
. LAST_READ
-
Дата и время последнего запроса на чтение данных из этой сущности. Для внешних writable-таблиц значение всегда равно
null
. UPLOAD_COUNT
-
Количество успешных запросов на загрузку данных в эту сущность. Для логических представлений, материализованных представлений и внешних readable-таблиц значение всегда равно 0.
UPLOAD_DURATION
-
Общее время выполнения (в миллисекундах) успешных запросов на загрузку данных в эту сущность. Для логических представлений, материализованных представлений и внешних readable-таблиц значение всегда равно 0.
UPLOAD_ERROR_COUNT
-
Количество неуспешных запросов на загрузку данных в эту сущность. Для логических представлений, материализованных представлений и внешних readable-таблиц значение всегда равно 0.
FIRST_UPLOAD
-
Дата и время первого запроса на загрузку данных в эту сущность. Для логических представлений, материализованных представлений и внешних readable-таблиц значение всегда равно
null
. LAST_UPLOAD
-
Дата и время последнего запроса на загрузку данных в эту сущность. Для логических представлений, материализованных представлений и внешних readable-таблиц значение всегда равно
null
. WRITE_COUNT
-
Количество успешных запросов на обновление данных в этой сущности. Для логических представлений, материализованных представлений и внешних readable-таблиц значение всегда равно 0.
WRITE_DURATION
-
Общее время выполнения (в миллисекундах) успешных запросов на обновление данных в этой сущности. Для логических представлений, материализованных представлений и внешних readable-таблиц значение всегда равно 0.
WRITE_ERROR_COUNT
-
Количество неуспешных запросов на обновление данных в этой сущности. Для логических представлений, материализованных представлений и внешних readable-таблиц значение всегда равно 0.
FIRST_WRITE
-
Дата и время первого запроса на обновление данных в этой сущности. Для логических представлений, материализованных представлений и внешних readable-таблиц значение всегда равно
null
. LAST_WRITE
-
Дата и время последнего запроса на обновление данных в этой сущности. Для логических представлений, материализованных представлений и внешних readable-таблиц значение всегда равно
null
. DOWNLOAD_COUNT
-
Количество успешных запросов на выгрузку данных из этой сущности. Для внешних writable-таблиц значение всегда равно 0.
DOWNLOAD_DURATION
-
Общее время выполнения (в миллисекундах) успешных запросов на выгрузку данных из этой сущности. Для внешних writable-таблиц значение всегда равно 0.
DOWNLOAD_ERROR_COUNT
-
Количество неуспешных запросов на выгрузку данных из этой сущности. Для внешних writable-таблиц значение всегда равно 0.
FIRST_DOWNLOAD
-
Дата и время первого запроса на выгрузку данных из этой сущности. Для внешних writable-таблиц значение всегда равно
null
. LAST_DOWNLOAD
-
Дата и время последнего запроса на выгрузку данных из этой сущности. Для внешних writable-таблиц значение всегда равно
null
. ROWS_COUNT
-
Количество записей в логической сущности по состоянию на последнюю закрытую дельту (
ROWS_COUNT_DELTA
).
Подсчет и вывод количества записей доступен для обычных логических таблиц, партициций, логических представлений и материализованных представлений. Для внешних readable- и writable-таблиц, а также для партиционированных таблиц значение равноnull
.
ЗначениеROWS_COUNT
для материализованного представления рассчитывается по подзапросу, на котором построено представление, а не текущему состоянию представления. Поэтому значение может отличаться от фактического количества строк представления, если представление еще не успело синхронизироваться с источником.
О видах логических таблиц см. в разделе Логическая таблица > Виды таблиц.
ROWS_COUNT_DELTA
-
Номер дельты, по состоянию на которую рассчитано значение
ROWS_COUNT
. Для внешних readable- и writable-таблиц, а также для партиционированных таблиц значение равноnull
.
Значения ROWS_COUNT
и ROWS_COUNT_DELTA
пересчитываются только при закрытии дельты, следующей по номеру за дельтой ROWS_COUNT_DELTA
. Если номер последней закрытой дельты стал меньше ROWS_COUNT_DELTA
(например, после выполнения ERASE DELTA), эти значения перестают обновляться до момента закрытия дельты, следующей по номеру за дельтой ROWS_COUNT_DELTA
. После обнуления статистики значения ROWS_COUNT
и ROWS_COUNT_DELTA
остаются равными null
до момента закрытия ближайшей дельты.
Чтобы актуализировать значения ROWS_COUNT
и ROWS_COUNT_DELTA
после ERASE DELTA, обнулите статистику запросом RESET_STATISTICS.
Синтаксис
Запрос статистики по сущностям всех логических БД окружения:
GET_ENTITY_STATISTICS()
Запрос статистики по всем или одной сущности указанной логической БД:
GET_ENTITY_STATISTICS(db_name | db_name.entity_name)
Параметры:
db_name
-
Имя логической базы данных, по сущностям или сущности которой запрашивается статистика.
Если в запросе указано только имя логической БД, возвращается статистика по сущностям этой логической базы данных; если в запросе нет параметров, возвращается статистика по сущностям всех логических БД окружения. entity_name
-
Имя логической сущности, по которой запрашивается статистика.
Возможные значения:- имя логической таблицы,
- имя логического представления,
- имя материализованного представления,
- имя внешней readable-таблицы,
- имя внешней writable-таблицы.
Ограничения
Общие ограничения
- Статистика сохраняется до рестарта ноды, при рестарте все значения, кроме
ROWS_COUNT
иROWS_COUNT_DELTA
, обнуляются. - При удалении логической сущности или логической БД ее статистика не обнуляется.
- Статистика не ведется по внешним таблицам загрузки и выгрузки, а также системным представлениям.
Ограничения значений ROWS_COUNT и ROWS_COUNT_DELTA
- Значения рассчитываются для следующих сущностей, данные которых размещены в СУБД ADB, ADP и (или) ADQM: для обычных логических таблиц, партиций, логических представлений и материализованных представлений.
- Значения обновляются только при закрытии дельты с номером
ROWS_COUNT_DELTA + 1
. - После обнуления статистики значения остаются равными
null
до момента закрытия ближайшей дельты. - Значения для материализованного представления рассчитывается по исходному запросу представления, а не его текущему состоянию. Поэтому значения могут отличаться от фактических, если представление не успело синхронизироваться с источником.
Примеры
Статистика логической таблицы
Запрос статистики по логической таблице:
GET_ENTITY_STATISTICS(marketing.sales)
На рисунке ниже показан фрагмент ответа GET_ENTITY_STATISTICS
по логической таблице sales
.
Статистика материализованного представления
Запрос статистики по материализованному представлению:
GET_ENTITY_STATISTICS(marketing.sales_by_stores)
Статистика сущностей логической БД
Запрос статистики по сущностям логической базы данных:
GET_ENTITY_STATISTICS(marketing)
На рисунке ниже показан фрагмент ответа GET_ENTITY_STATISTICS
по сущностям логической базы данных marketing
.
Статистика сущностей окружения
Запрос статистики по сущностям всех логических баз данных окружения:
GET_ENTITY_STATISTICS()