人大金仓KingbaseES sys_stat_statements 扩展使用介绍

sys_stat_statements 模块提供追踪服务器所执行的所有SQL语句的执行统计信息,可以用于统计数据库的资源开销,如分析TOP SQL。

KingbaseES V8R6版本该插件已经内置化,初始化数据库实例的时候,就会被自动加载。但功能默认关闭,需要设置:sys_stat_statements.track = ’top’ 才能正常使用。

该组件的主要配置参数:

  • sys_stat_statements.max(整数)
    sys_stat_statements.max是模块跟踪的最大语句数(即sys_stat_statements视图中的最大行数)。如果观察到的语句不同,则将丢弃关于执行最少的语句的信息。默认值为5000。只能在服务器启动时设置此参数。

  • sys_stat_statements.track(枚举)
    sys_stat_statements.track控制模块计算哪些语句。指定top以跟踪顶级语句(由客户端直接发出的语句),全部也可以跟踪嵌套语句(例如在函数内调用的语句),或者不指定以禁用语句统计信息收集。默认值为 'none'。仅超级用户可以更改此设置。

  • sys_stat_statements.track_utility(boolean)
    sys_stat_statements.track_utility控制模块是否跟踪实用程序命令。实用程序命令是除SELECT,INSERT,UPDATE和DELETE之外的所有命令。默认值为on。仅超级用户可以更改此设置。

  • sys_stat_statements.save(boolean)
    sys_stat_statements.save指定是否在服务器关闭时保存语句统计信息。如果关闭,则统计信息不会在关闭时保存,也不会在服务器启动时重新加载。默认值为on。只能在kingbase.conf文件或服务器命令行中设置此参数。

参数配置示例:配置后需要重启数据库生效

shared_preload_libraries ='liboracle_parser, sys_stat_statements'sys_stat_statements.max = 10000sys_stat_statements.track = 'top'

sys_stat_statements 视图结构:

名称

类型

描述

userid

oid

执行该语句的用户的 OID

dbid

oid

在其中执行该语句的数据库的 OID

queryid

bigint

内部哈希码,从语句的解析树计算得来

query

text

语句的文本形式

parses

bigint

该语句被解析的次数

total_parse_time

double precision

在该语句中解析花费的总时间,以毫秒计

min_parse_time

double precision

在该语句中解析花费的最小时间,以毫秒计

max_parse_time

double precision

在该语句中解析花费的最大时间,以毫秒计

mean_parse_time

double precision

在该语句中解析花费的平均时间,以毫秒计

stddev_parse_time

double precision

在该语句中解析花费时间的总体标准偏差,以毫秒计

plans

bigint

该语句执行Plan的次数

total_plan_time

double precision

在该语句中执行Plan花费的总时间,以毫秒计

min_plan_time

double precision

在该语句中执行Plan花费的最小时间,以毫秒计

max_plan_time

double precision

在该语句中执行Plan花费的最大时间,以毫秒计

mean_plan_time

double precision

在该语句中执行Plan花费的平均时间,以毫秒计

stddev_plan_time

double precision

在该语句中执行P lan花费时间的总体标准偏差,以毫秒计

calls

bigint

被执行的次数

total_exec_time

double precision

在该语句中花费的总时间,以毫秒计(该字段在V8R5里面为:total_time)

min_exec_time

double precision

在该语句中花费的最小时间,以毫秒计(该字段在V8R5里面为:min_time)

max_exec_time

double precision

在该语句中花费的最大时间,以毫秒计(该字段在V8R5里面为:max_time)

mean_exec_time

double precision

在该语句中花费的平均时间,以毫秒计(该字段在V8R5里面为:mean_time)

stddev_exec_time

double precision

在该语句中花费时间的总体标准偏差,以毫秒计(该字段在V8R5里面为:stddev_time)

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

该语句花在写入块上的总时间,以毫秒计

常用的分析SQL

调用次数较多的SQL

select * from sys_stat_statements stat order by calls desc limit 10;

总执行时间较长的SQL

select * from sys_stat_statements order by total_exec_time desc limit 10;

平均执行时间较长的SQL

select * from sys_stat_statements order by mean_exec_time desc limit 10;

在读/写块上总执行时间最多的SQL

select * from sys_stat_statements order by (blk_read_time+blk_write_time) desc limit 10;

在读/写块上平均执行时间最多的SQL

select * from sys_stat_statements order by (blk_read_time+blk_write_time)/calls desc limit 10;

查看时间抖动严重的SQL

select * from sys_stat_statements order by stddev_exec_time desc limit 10;

消耗共享内存较多的SQL

select * from sys_stat_statements order by (shared_blks_hit+shared_blks_dirtied) desc limit 10;

使用临时块较多的SQL

select * from sys_stat_statements order by temp_blks_written desc limit 10;

缓冲池命中率较低的SQL

SELECT *,cast(100.0*shared_blks_hit/nullif(shared_blks_hit + shared_blks_read,0) as decimal(10,2)) AS hit_percent FROM sys_stat_statements ORDER BY total_exec_time DESC LIMIT 10;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值