queries_*

queries_*

queries_*表存储高层的查询状态信息。

tmidssid以及ccnt列是唯一标识一个特定查询的组合键。

有三种查询表,所有表都有相同的列:

  • queries_now是一个外部表,其数据文件存储在$MASTER_DATA_DIRECTORY/gpperfmon/data中。在从数据收集代理收集数据和自动提交到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) 查询的状态 -- startdone或者 abort
rows_out bigint 该查询输出的行。
cpu_elapsed bigint

所有Segment上执行该查询的所有进程使用的CPU总量(以秒计)。它是在数据库系统中所有活动主Segment的CPU使用值的综合。

注意:如果查询的执行时间短于定额的值,那么该值被记录为0。这种情况即使在查询执行时间大于min_query_time的值以及这个值低于定额的值时也会发生。

cpu_currpct float

执行此查询的所有进程的当前CPU 平均百分比。运行在每个Segment上的所有进程的百分比都会被用于计算平均,然后所有那些值的平均值被算出来提供这个度量。

在历史和尾部数据中,当前CPU的百分比平均数总为零。

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