queries_* 表
queries_* 表
queries_* 系列表存储高级查询状态信息.
tmid, ssid 和 ccnt 列是唯一标识特定查询的组合键.
一共有三张查询表,所有查询表都具有相同的列:
- queries_now 是一个外部表, 其数据文件位于 $MASTER_DATA_DIRECTORY/gpperfmon/data. 在数据从 gpperfmon 代理自动提交到 queries_history 表期间, 当前查询状态存储在 queries_now 中。
- queries_tail 是一个外部表, 其数据文件位于 $MASTER_DATA_DIRECTORY/gpperfmon/data. 它是一个过渡表。当数据已经从 queries_now 中清除,但还没有提交到 queries_history 时,查询状态数据保存在这里。它通常仅包含数据几分钟时间.
- queries_history 是存储历史查询状态数据的常规表。 它被预定义为按月进行分区. 分区会根据需要以两个月为增量自动添加。
列 | 类型 | 说明 |
---|---|---|
ctime | timestamp | 该行的创建时间. |
tmid | int | 特定查询的时间标识符. 与特定查询关联的所有记录具有相同的 tmid. |
ssid | int | 与 gp_session_id 关联的会话 ID. 与特定查询关联的所有记录具有相同的 ssid. |
ccnt | int | 与 gp_command_count 关联的命令号. 与特定查询关联的所有记录具有相同的 ccnt. |
username | varchar(64) | 发出查询的 Greenplum 角色名称. |
db |
varchar(64) | 查询的数据库名称. |
cost | int | 在此版本中未实现. |
tsubmit | timestamp | 查询的提交时间. |
tstart | timestamp | 查询的开始时间. |
tfinish | timestamp | 查询的结束时间. |
status | varchar(64) | 查询状态 -- start, done, or abort. |
rows_out | bigint | 查询输出的行数. |
cpu_elapsed | bigint |
执行该查询的全部 segments 的全部进程的 CPU 时间 (单位: 秒). 它是从数据库系统中所有活动的主 segments 获取的 CPU 时间总和。 请注意,如果查询运行时间短于 quantum 的值,则该值记录为 0。 即使查询运行时间大于 min_query_time 值, 但是低于 quantum 的值, 也会记录为 0。 |
cpu_currpct | float |
当前执行此查询的所有进程的 CPU 平均百分比。 对在每个 segment 上运行的所有进程的百分比求平均值, 然后计算所有这些值的平均值来获得该指标。 当前的 CPU 平均百分比在 history 数据和 tail 数据中始终为零。 |
skew_cpu | float |
显示该查询在系统中的处理偏斜量。 当一个 segment 对查询执行的处理量不成比例时,就会发生处理 / CPU 偏斜。 此值是此查询所有 segment 中 CPU% 度量的方差系数乘以 100。 例如,.95 的值表示为 95。 |
skew_rows | float | 显示系统中的行偏斜量。 当一个 segment 产生的查询行数不成比例时,就会发生行偏斜。 该值是该查询所有 segment 的 rows_in 指标的方差系数乘以100。 例如,.95 的值显示为 95。 |
query_hash | bigint | 在此版本中未实现. |
query_text | text | 该查询的 SQL 文本. |
query_plan | text | 查询计划文本. 在此版本中未实现. |
application_name | varchar(64) | 应用程序的名称. |
rsqname | varchar(64) | 如果基于资源队列的资源管理方案被使用,则此列为资源队列的名称. |
rqppriority | varchar(64) | 如果基于资源队列的资源管理方案被使用, 则此列为查询优先级 -- max, high, med, low, 或 min. |