人大金仓数据库KingbaseES 慢查询日志的获取(二)

金仓数据库KingbaseES 慢查询日志的获取(二)

关键字:

KingbaseES、慢查询日志、log、sys_stat_statements、人大金仓、KingbaseES

一、慢查询日志概述

慢查询日志可以记录所有执行时间超过一定阈值(1s)的SQL语句。通过分析慢查询日志可以找出哪些查询比较耗时,然后在进行优化。获取慢查询日志的方法有两种:

  1. 开启慢查询日志。
  2. 使用sys_stat_statements扩展。

下面详细介绍通过sys_stat_statements扩展获取慢查询日志的方法。

二、sys_stat_statements

插件 sys_stat_statements 是 KingbaseES 的一个扩展插件。该插件提供了一种获取服务器执行的所有SQL语句统计信息的方法,可以用于统计数据库的资源开销,如分析TOP SQL。

1、sys_stat_statements加载方式

修改 kingbase.conf 文件中 shared_preload_libraries 参数后重启数据库。

shared_preload_libraries = 'sys_stat_statements'

2、sys_stat_statements参数配置

该插件的主要配置参数

  • sys_stat_statements.max(整数):模块跟踪的最大语句数(即sys_stat_statements视图中的最大行数)。如果观察到的语句不同,则将丢弃关于执行最少的语句的信息。默认值为5000。只能在服务器启动时设置此参数。
  • sys_stat_statements.track(枚举):控制模块计算哪些语句。指定top以跟踪顶级语句(由客户端直接发出的语句),默认值为top。仅超级用户可以更改此设置。
  • sys_stat_statements.track_utility(boolean):控制模块是否跟踪实用程序命令。实用程序命令是除 SELECT,INSERT,UPDATE 和 DELETE之外的所有命令。默认值为 on。仅超级用户可以更改此设置。
  • sys_stat_statements.save(boolean):指定是否在服务器关闭时保存语句统计信息。如果关闭,则统计信息不会在关闭时保存,也不会在服务器启动时重新加载。默认值为on。只能在kingbase.conf文件或服务器命令行中设置此参数。

3、sys_stat_statements视图

KingbaseES 加载 sys_stat_statements 插件后,通过视图 sys_stat_statements 查看。视图 sys_stat_statements内容默认为空,需要在kingbase.conf中配置参数才可以将sql日志写入sys_stat_statements视图。典型的参数配置为:

shared_preload_libraries ='sys_stat_statements'

sys_stat_statements.max = 10000

sys_stat_statements.track = 'top'

配置完上述参数后,需要重新启动数据库,参数才能生效。

三、举例说明

(1)在kingbase.conf中,配置以下参数:

shared_preload_libraries ='sys_stat_statements'

sys_stat_statements.max = 10000

sys_stat_statements.track = 'top'

重新启动,使上述参数设置生效。

(2)在Kingbase数据库中输入以下命令:

test=#select query, calls, total_parse_time, rows, 100*shared_blks_hit/nullif(shared_blks_hit+shared_blks_read,0) as hit_precent from sys_stat_statements limit 2;

(3)通过以上命令获取的慢查询日志结果为:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值