queries_* 表

queries_* 表

queries_* 系列表存储高级查询状态信息.

tmid, ssidccnt 列是唯一标识特定查询的组合键.

一共有三张查询表,所有查询表都具有相同的列:

  • 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.