queries_*

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

tmid、ssid以及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是一个常规表,它存储数据库范围的历史查询状态数据。它被预分区为每月的分区表。分区会根据需要进行两个月的增量添加。管理员必须要删除那些不再需要的月份的旧分区。
列名类型描述
ctimetimestamp该行被创建的时间。
tmidint一个特定查询的时间标识符。与一个查询关联的所有记录将有同样的tmid
ssidintgp_session_id所显示的会话id。与一个查询关联的所有记录将有同样的ssid
ccntintgp_command_count所显示的当前会话的命令数。与一个查询关联的所有记录将有同样的ccnt
usernamevarchar(64)发出该查询的Greenplum角色名。

db

varchar(64)被查询的数据库名。
costint在这个版本中没有实现。
tsubmittimestamp查询被提交的时间。
tstarttimestamp查询开始的时间。
tfinishtimestamp查询结束的时间。
statusvarchar(64)查询的状态 — startdone或者 abort
rows_outbigint该查询输出的行。
cpu_elapsedbigint

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

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

cpu_currpctfloat

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

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

skew_cpufloat

显示此查询在系统中的处理倾斜量。当一个Segment为一个查询执行不成比例的处理量时,就发生了处理/CPU倾斜。这个值是所有Segment上这一查询的CPU%度量的变异系数乘以100。例如, .95的值显示为95。

skew_rowsfloat显示在系统中行倾斜的量。当一个Segment为一个查询产生不成比例的行数时,就发生了行倾斜。这个值是所有Segment上这一查询的rows_in度量的变异系数乘以100。例如, .95的值显示为95。
query_hashbigint在这个版本中没有实现。
query_texttext查询的SQL文本。
query_plantext查询计划的文本。在这个版本中没有实现。
application_namevarchar(64)应用名。
rsqnamevarchar(64)资源队列名。
rqppriorityvarchar(64)查询的优先级—max、high、med、low、或 min

上级主题: gpperfmon数据库