TDSQL Boundless SLOW_LOG

SLOW_LOG 是列存只读分析实例记录慢 SQL 的系统表,位于系统库 libra_system 中。当 SQL 语句的执行时间超过阈值(默认300毫秒)时,将被记录到此系统表。系统默认保留7天内的慢 SQL 执行信息,超过保留期限的数据会被自动清理。

相关产品
TDSQL Boundless 产品页,含版本规格、价格与购买入口。

一、功能介绍

通过查询该表,你可以分析列存只读分析实例中执行较慢的 SQL,定位性能瓶颈和异常查询。

二、使用限制

·用户查询 libra_system.slow_log 时,系统会自动过滤掉内部用户(libra@%)产生的慢 SQL 记录,仅返回业务用户的查询信息。

·系统内部 SQL(如统计信息收集、元数据维护等)不会被记录到该表。

·失败的 SQL(执行报错)也会被记录,可通过 succ 字段进行筛选。

三、慢查询阈值

慢 SQL 的判定阈值由系统变量 libra_slow_log_threshold 控制。

名称 含义 类型 默认值 取值范围 单位
libra_slow_log_threshold 慢 SQL 判定阈值 Integer 300 -1 ~ 9223372036854775807 毫秒

修改阈值示例:

SET GLOBAL libra_slow_log_threshold = 500;

注意:说明:

注意:当取值为 -1 时,表示不记录任何慢 SQL。修改后立即生效,无需重启服务。

四、SQL 文本长度限制

写入 sql 列的 SQL 文本最大长度由系统变量 libra_query_log_max_len 控制,超过该长度时 SQL 文本会被截断。

名称 含义 类型 默认值 取值范围 单位
libra_query_log_max_len 慢 SQL 文本最大长度 Integer 4194304 0 ~ 1073741824 字节

默认值 4194304 字节即 4 MB。

五、查询示例

查询所有慢 SQL:

SELECT * FROM libra_system.slow_log;

查询执行时间超过1秒的慢 SQL:

SELECT start_time, user, db, duration, sqlFROM libra_system.slow_logWHERE duration > 1000ORDER BY duration DESCLIMIT 10;

查询某段时间内执行失败的慢 SQL:

SELECT start_time, user, db, sql, durationFROM libra_system.slow_logWHERE event_date = '2026-05-13' AND succ = 0;

六、字段说明

字段名称 类型 是否可以为 NULL 描述
event_date date NO 慢 SQL 发生日期,按日期分区,用于加速时间范围过滤。
start_time text NO SQL 开始执行时间,格式为 YYYY-MM-DD HH:MM:SS.ffff,精确到 0.1毫秒。
tso bigint(20) unsigned NO SQL 关联的事务时间戳,可作为查询的全局有序标识。
sql text NO SQL 文本信息。最大长度由 libra_query_log_max_len 控制(默认 4 MB),超过将被截断。
duration bigint(20) unsigned NO SQL 的执行时间,单位为毫秒。
details text NO SQL 执行详细信息,预留字段,当前为空字符串。
conn_id bigint(20) unsigned NO 客户端连接的 Session ID。
user text NO 执行该 SQL 的用户名,格式为 user@host。
db text NO 执行 SQL 时所在的数据库名。
digest text NO SQL 归一化后的指纹,相同模式的 SQL 拥有相同的 Digest,可用于聚合分析。
succ tinyint(3) unsigned NO SQL 是否执行成功。取值:0 表示失败,1 表示成功。
host text NO 实际执行该 SQL 的 Libra 存储节点地址,格式为 IP:Port。
execution_mode text NO SQL 的执行模式。取值:no_forward、auto_tp、auto_ap、only_tp、only_ap。详见下方说明。
normalized_sql text NO 参数化(归一化)后的 SQL 文本,可用于 SQL 模式聚合。

七、execution_mode 取值说明

取值 说明
no_forward 自动路由关闭,SQL 在 Libra 上执行。
auto_tp 自动路由开启,根据代价估算路由到 TDSQL 执行。
auto_ap 自动路由开启,根据代价估算路由到 Libra 执行。
only_tp 强制路由到 TDSQL 执行。
only_ap 强制路由到 Libra 执行。

注意:说明:

注意:event_date 是该表的分区字段,按 tso 排序。在查询时优先使用 event_date 作为过滤条件,可显著提升查询性能。

赞 (0)
上一篇 4天前
下一篇 4天前