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 = 10000
sys_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;
sys_stat_statements 扩展使用介绍的更多相关文章
- APK扩展文件介绍、功能及用法
APK扩展文件介绍 Android Market (Google Play Store)中每一个APK文件的最大限制是50MB.假设您的程序中包括大量的数据文件,曾经您仅仅能把这些数据文件放到自己的s ...
- SAP S/4HANA extensibility扩展原理介绍
SAP产品总的extensibility扩展原理介绍: 看Jerry这篇文章. SAP Cloud for Customer Extensibility的设计与实现 我的同事Boris写的. 而本文是 ...
- vs2010(vs2012)好用的扩展插件介绍
一直以来只使用番茄vs助手(https://www.wholetomato.com/downloads/default.asp)辅助写代码,也都忘了是谁介绍的,不过确实好用. 相比原始的vs,它提供了 ...
- C#3.0新特性之扩展方法介绍
C#3.0扩展方法是给现有类型添加一个方法.现在类型即可是基本数据类型(如int,String等),也可以是自己定义的类.以下是引用片段: //Demo--1 //扩展基本类型 namespace T ...
- 开源VS扩展CodeMaid介绍
CodeMaid是一个开源的Visual Studio的扩展插件,用于整理与优化代码等.功能类似于商业软件ReSharper,但它是免费的,并且开放源代码.它能帮助你更容易的理解你的代码,支 ...
- CAN总线扩展数据帧介绍
在扩展CAN 数据帧中,紧随SOF 位的是32 位的仲裁字段.仲裁字段的前11 位为29 位标识符的最高有效位(Most Significant bit,MSb)(基本lD) .紧随这11 位的是替代 ...
- windbg调试系列教程:sos扩展的介绍和使用
SOS是什么? 直观来说,sos就是一个程序集文件.这个程序集的作用就是让我们在使用windbg分析.net进程时,更加方便快捷.通过sos,我们可以清晰的查看CLR运行时的各类信息,辅助我们去理解托 ...
- linux系统文件扩展名介绍
1.源码tar.tar.gz .tgz.zip.tar.bz 表示压缩文件,创建命令等 2.sh表示shell脚本文件,通过shell语言开发的程序. 3.pl 表示perl语言文件,通过perl语言 ...
- java工作流系统jflow表单引擎字段扩展组件介绍
关键词:工作流快速开发平台 工作流流设计 业务流程管理 asp.net 开源工作流 bpm工作流系统 java工作流主流框架 自定义工作流引擎 表单设计器 流程设计器 装饰类图片 用于 ...
- 清除页面广告?身为前端,自己做一款简易的chrome扩展吧
大家肯定有这样的经历,浏览网页的时候,左右两端广告,诸如“屠龙宝刀,点击就送”,以及最近火的不行的林子聪37传奇霸业什么“霸业面具,霸业吊坠”的魔性广告总是充斥我们的眼球. 当然有现成的扩展程序或者插 ...
随机推荐
- Direct2D CreateHwndRenderTarget 和 CreateDCRenderTarget
前段时间稍微看了点Direct3D, 觉得挺有意思的,但是想着要有3D得先从2D开始.故开始了D2D旅行. 如标题所示,CreateHwndRenderTarget 是在用来创建一个渲染到窗口的渲染目 ...
- golang常用库:gorilla/mux-http路由库使用
golang常用库:gorilla/mux-http路由库使用 golang常用库:配置文件解析库/管理工具-viper使用 golang常用库:操作数据库的orm框架-gorm基本使用 一:gola ...
- Java Http客户端选型
JDK自带 HTTPURLConnect:功能单一 Apache HttpClient https://hc.apache.org/index.html 是一个比较古老的HTTP框架,使用非常普遍. ...
- values_list()中参数flat用法
先说下values from .models import Student student = Student.objects.values('number') student [{'number': ...
- http.Handler接口
// 示例 // net/http package http type Handler interface{ ServeHTTP(w ResponseWriter, r *Request) } fun ...
- 框架和MVC架构
网络框架及MVC架构 网络框架 所谓网络框架是指这样的一组Python包,它能够使开发者专注于网站应用业务逻辑的开发,而无须处理网络应用底层的协议.线程.进程等方面.这样能大大提高开发者的工作效率,同 ...
- 看看这份2023年MySQL终级面试题,提升你的内力,给你面试助力
1.MySQL 中有哪几种锁? (1)表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最 高,并发度最低. (2)行级锁:开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最 ...
- 【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误
问题描述 PHP应用突然遇见了500 The page cannot be displayed because an internal server error has occurred.错误,但是如 ...
- C#实现图片对比
前言 虽然已经正式转JAVA了,但最近发现一个特别好的开源项目masuit,不仅提供很多简便的功能,还有图像的一些特殊操作功能. 下面就实现一个简单图像对比. 实现对比 代码如下,实现一个可以对比翻转 ...
- Java 多线程------解决 实现Runnabel接口方式线程的线程安全问题 方式二:同步方法 +总结
方式二:同步方法* 如果操作共享数据的代码完整的声明在一个方法中,我们不妨将此方法声明同步的 1 package bytezero.threadsynchronization; 2 3 4 5 /** ...