• KingbaseES参数track_activity_query_size介绍


    背景
    同事A在客户现场,最近注意到客户的主数据库性能有所下降,尤其是在高峰时段。怀疑可能有一些复杂的查询影响了数据库的性能,但尚未确定具体是哪些查询。
    为了诊断问题,A决定查看高峰期正在执行的查询,先通过sys_stat_activity视图看下当前有哪些sql在运行:

    SELECT pid, usename, query, state FROM sys_stat_activity WHERE state = 'active';
    

    结果显示了多个活动查询,A注意到有部分query字段记录的sql被截断了,从而无法获取完整的sql。
    这是因为track_activity_query_size参数设置得太小,导致无法查看完整的查询字符串。默认情况下,这个参数的值可能不足以显示复杂查询的sql。

    在跟客户申请后,在夜间修改了参数并重启数据库后,次日重新查询,已能获取到完整的sql语句。
    后续对复杂的报表查询语句进行了优化,解决了问题。

    参数说明
    track_activity_query_size:指定跟踪每个活动会话当前执行命令所保留的字节数,它们被用于sys_stat_activity.query域。默认值是 1024。这个参数只能在服务器启动时被设置。
    换句话说,track_activity_query_size设置的是sys_stat_activity.query字段可以保存的查询字符串的最大字符数。如果一个查询的长度超过了这个参数设置的大小,那么在sys_stat_activity.query 中显示的查询字符串会被截断。

    注意
    增加track_activity_query_size可能会增加每个会话的内存使用量。因此,在内存受限的环境中调整此参数时需要谨慎。
    建议在调整此参数后监控数据库的内存使用情况,确保不会导致过度的内存压力。

    track_activity_query_size 是KingbaseES中一个重要但经常被忽视的配置选项。
    通过正确配置和使用此参数,您可以获得关于数据库活动的宝贵信息,这对于维护数据库的健康和优化性能至关重要。

  • 相关阅读:
    Node.js之Express快速介绍与入门示例
    nginx--install
    LeetCode - 反转链表Ⅱ
    基于反馈机制的鲸鱼优化算法-附代码
    Android 读取string.xml到EXCEL表格
    搜索——最短路模型,多源bfs
    数据链路层具体协议
    睿趣科技:抖音小店在哪里选品
    Tomcat详解
    【Java】JVM学习
  • 原文地址:https://www.cnblogs.com/kingbase/p/17931053.html