Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


SLOWSQL.LOG

📄字数 883
👁️阅读量 加载中...

SLOWSQL.LOG是虚谷数据库提供的慢SQL日志文件,用于记录所有执行时间超过预设阈值的SQL语句。该日志可帮助开发与运维人员定位系统中的性能瓶颈,是进行SQL性能优化、索引调优、资源分析等工作的关键依据。

一、 启用和禁用慢SQL记载

通过系统参数slow_sql_time来开启和关闭SLOWSQL日志的记载行为。默认值为0,表示关闭慢SQL记载功能,正数表示开启记载执行时长超过阈值(ms)的sql命令。

示例如下:

sql
-- 开启慢SQL记载,阈值设置为100ms
SQL> SET slow_sql_time TO 100;

提示

单个SLOWSQL.LOG文件大小可通过系统参数errlog_size控制,默认大小为100MB。当日志文件大小达到指定阈值时,系统会保存当前日志文件,追加时间为文件名后缀,重命名为SLOWSQL_yy_mm_dd_hh_mi_ss.LOG进行归档,并生成一个新的SLOWSQL.LOG文件

二、 SLOWSQL日志格式

记载的一行慢SQL日志如下:

sql
3   13018   SYSDBA  8487   127.0.0.1    2025-07-03 16:52:56   1463   execute procedure_p1(?,?)   {PN=2,GN=1 <1,S,'abc'><2,S,NULL>}

对日志进行拆解,其表示的含义如下:

  • 3:表示机器节点号
  • 13018:表示数据库id
  • SYSDBA:表示用户名
  • 8487:表示会话id
  • 127.0.0.1:表示客户端ip
  • 2025-07-03 16:52:56:表示当前时间
  • 1463:表示sql执行时长
  • execute procedure_p1(?,?):表示执行的sql命令
  • {PN=2,GN=1 <1,S,'abc'><2,S,NULL>}:表示sql执行的命令参数

提示

sql执行的命令参数通常出现在带参数的PREPARE语句、存储过程等SQL中。其记载格式为:{PN=%参数个数,GN=%参数组数 <参数编号,参数类型,值> ...}

三、 使用场景

  • 场景一:SQL性能优化。开发人员通过日志定位耗时SQL,进行语法改写、索引优化等
  • 场景二:索引缺失诊断。慢SQL日志揭示全表扫描、排序等代价高操作,提示索引策略改进
  • 场景三:资源瓶颈定位。分析慢SQL是否集中在特定时间段、表或业务模块,辅助识别负载高峰点

四、 相关系统表