matrixmgr 扩展

本文档介绍了 matrixmgr 扩展的主要组成及功能。

matrixmgr 扩展主要用于 YMatrix 的查询统计功能。YMatrix 集群初始化后会默认创建 matrixmgr 数据库和 matrixmgr 扩展。部署成功后,在 matrixmgr 数据库的 matrixmgr_internal 模式下会出现如下表和视图:

视图 描述
mxstat_execute 这张视图提供了 SQL 语句的执行情况,比如 SQL 语句执行的节点实例,用户,查询文本,执行的最长最短时间,以及最慢语句的各阶段时间戳。你可以通过这张表看来不同 SQL 语句执行时间,以及分析最慢语句的情况
mxstat_usage 这张视图提供了SQL语句执行时计算资源的消耗情况
mx_query_execute_history 这张视图是 mxstat_execute 视图的历史信息
mx_query_usage_history 这张视图是 mxstat_usage 视图的历史信息
mx_querytext 这张视图存储了 queryidquerytext 的映射,你可以通过这个映射获取 SQL 文本
mx_query_execute_history_with_text mx_query_execute_historymx_querytext 通过 queryid 进行关联后的视图

进入 matrixmgr 数据库可查看以下视图:

mxstat_execute

该视图展示了 5 分钟内的查询统计信息。

字段名 类型 描述
seg integer 查询生成并下发计划节点编号
userid oid 用户 OID
dbid oid 数据库 OID
queryid bigint 查询 ID,由扩展生成,用来将相同类型的查询进行归类
nestlevel integer 嵌套深度
query text 查询文本
calls_begin bigint 查询启动次数
calls_alive bigint 上次收集历史信息时,处于执行状态的查询数
calls_end bigint 查询正常结束次数
total_time double precision 该类查询总执行时间,单位毫秒
min_time double precision 该类型查询最短执行时间,单位毫秒
max_time double precision 该类查询最长执行时间,单位毫秒
mean_time double precision 该类查询平均执行时间,单位毫秒
stddev_time double precision 该类查询执行时间标准差,单位毫秒
sample_planid bigint 执行计划 ID
sample_start timestamp with time zone 最慢查询启动时间戳
sample_parse_done timestamp with time zone 最慢查询完成解析时间戳
sample_plan_done timestamp with time zone 最慢查询生成计划时间戳
sample_exec_start timestamp with time zone 最慢查询开始执行时间戳
sample_exec_end timestamp with time zone 最慢查询执行完毕时间戳

mxstat_usage

该视图展示了 5 分钟内的查询资源消耗信息。

字段名 类型 描述
seg integer 查询执行节点编号
userid oid 用户 OID
dbid oid 数据库 OID
queryid bigint 查询 ID,由扩展生成,用来将相同类型的查询进行归类
nestlevel integer 嵌套深度
rows bigint 该语句检索或影响的行总数
shared_blks_hit bigint 该语句造成的共享块缓冲命中总数
shared_blks_read bigint 该语句读取的共享块的总数
shared_blks_dirtied bigint 该语句弄脏的共享块的总数
shared_blks_written bigint 该语句写入的共享块的总数
local_blks_hit bigint 该语句造成的本地块缓冲命中总数
local_blks_read bigint 该语句读取的本地块的总数
local_blks_dirtied bigint 该语句弄脏的本地块的总数
local_blks_written bigint 该语句写入的本地块的总数
temp_blks_read bigint 该语句读取的临时块的总数
temp_blks_written bigint 该语句写入的临时块的总数
blk_read_time double precision 该语句花在读取块上的总时间,以毫秒计
blk_write_time double precision 该语句花在写入块上的总时间,以毫秒计
ru_utime double precision 用户态 CPU 时间
ru_stime double precision 系统态 CPU 时间
ru_maxrss bigint 实际使用物理内存,包含共享库占用的内存,单位 KB
ru_ixrss bigint 集成共享内存大小
ru_idrss bigint 集成非共享数据大小
ru_isrss bigint 集成非共享堆栈大小
ru_minflt bigint 缺页中断的次数,且处理这些中断不需要进行 I/O
ru_majflt bigint 缺页中断的次数,且处理这些中断需要进行 I/O
ru_nswap bigint 交换空间
ru_inblock bigint 文件系统需要进行输入操作的次数
ru_oublock bigint 文件系统需要进行输出操作的次数
ru_msgsnd bigint 消息发送数量
ru_msgrcv bigint 消息接收数量
ru_nsignals bigint 接收信号数量
ru_nvcsw bigint 因进程自愿放弃处理器时间片而导致的上下文切换的次数
ru_nivcsw bigint 因进程时间片使用完毕或被高优先级进程抢断导致的上下文切换的次数

其他视图

  • mx_query_execute_history:该视图为分区视图,是 mxstat_execute 视图的历史信息收集,默认 5 分钟一次。其结构和 mxstat_execute 视图一致,只是多了一个 ts_bucket 字段,记录收集的时间点。
  • mx_query_usage_history:该视图为分区视图,是 mxstat_usage 视图的历史信息收集,默认 5 分钟一次。其结构和 mxstat_usage 视图一致,只是多了一个 ts_bucket 字段,记录收集的时间点。
  • mx_querytext:存储 queryidquerytext 的映射,和其他历史信息收集表一样,周期存储,目的是使历史查询可以获取 SQL 文本。
  • mx_query_execute_history_with_text:将 mx_query_execute_historymx_querytext 通过 queryid 进行关联后的视图。同时读取历史查询统计信息和 SQL 文本。

另请参阅

查询统计