queries_*
Таблицы queries_* базы данных gpperfmon хранят обобщенную информацию о состоянии SQL-запросов.
Существуют три таблицы с одинаковыми наборами столбцов:
-
queries_now— внешняя таблица, файлы данных которой хранятся в $MASTER_DATA_DIRECTORY/gpperfmon/data. Текущее состояние SQL-запросов хранится вqueries_nowв промежутке между сбором данных агентамиgpperfmonи автоматическим переносом в таблицуqueries_history. -
queries_tail— внешняя таблица, файлы данных которой хранятся в $MASTER_DATA_DIRECTORY/gpperfmon/data. Это промежуточная таблица для данных о состоянии SQL-запросов, которые уже удалены изqueries_now, но еще не зафиксированы вqueries_history. Обычно она содержит данные за несколько минут. Эта таблица предназначена только для внутреннего использования. -
queries_history— обычная таблица, в которой хранятся исторические данные о состоянии SQL-запросов. Она партиционирована по месяцам. Партиции автоматически добавляются с шагом в два месяца по мере необходимости.
Столбцы tmid, ssid и ccnt образуют составной ключ, который однозначно идентифицирует конкретный SQL-запрос.
| Столбец | Тип | Описание |
|---|---|---|
ctime |
timestamp |
Время создания строки |
tmid |
int |
Идентификатор времени для конкретного SQL-запроса.
Все записи, относящиеся к запросу, имеют одинаковое значение |
ssid |
int |
Идентификатор сессии, как показано в |
ccnt |
int |
Номер команды в рамках данной сессии, как показано в |
username |
varchar(64) |
Имя роли Greengage DB, выполнившей данный SQL-запрос |
db |
varchar(64) |
Имя базы данных, к которой выполнялся SQL-запрос |
cost |
int |
Стоимость запроса (не реализовано в текущих версиях) |
tsubmit |
timestamp |
Время отправки SQL-запроса |
tstart |
timestamp |
Время начала выполнения SQL-запроса |
tfinish |
timestamp |
Время завершения выполнения SQL-запроса |
status |
varchar(64) |
Состояние SQL-запроса — |
rows_out |
bigint |
Количество строк, возвращенных SQL-запросом |
cpu_elapsed |
bigint |
Использование CPU всеми процессами на всех сегментах, выполняющими данный SQL-запрос (в секундах). Это сумма значений использования CPU, собранных со всех активных основных сегментов в системе баз данных. Обратите внимание, что значение записывается как |
cpu_currpct |
float |
Текущее среднее значение процента использования CPU всеми процессами, выполняющими данный SQL-запрос. Проценты для всех процессов, выполняющихся на каждом сегменте, усредняются, после чего вычисляется среднее значение по всем сегментам для формирования данной метрики. Текущее среднее значение процента использования CPU всегда равно нулю в таблицах с историческими и промежуточными данными |
skew_cpu |
float |
Отображает степень перекоса обработки в системе для данного SQL-запроса.
Перекос обработки (CPU/processing skew) возникает, когда один сегмент выполняет непропорционально большой объем обработки для SQL-запроса.
Это значение представляет собой коэффициент вариации использования CPU по всем сегментам для данного SQL-запроса, в процентах, умноженный на 100.
Например, значение 0.95 отображается как |
skew_rows |
float |
Отображает степень перекоса по строкам в системе.
Перекос по строкам возникает, когда один сегмент возвращает непропорционально большое количество строк для SQL-запроса.
Это значение представляет собой коэффициент вариации метрики |
query_hash |
bigint |
Не реализовано в текущих версиях |
query_text |
text |
Текст SQL-запроса |
query_plan |
text |
Текст плана SQL-запроса (не реализовано в текущих версиях) |
application_name |
varchar(64) |
Имя приложения |
rsqname |
varchar(64) |
Если для управления ресурсами используются ресурсные очереди, в этом столбце указывается имя ресурсной очереди |
rqppriority |
varchar(64) |
Если для управления ресурсами используются ресурсные очереди, в этом столбце указывается приоритет SQL-запроса — |