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
:表示数据库idSYSDBA
:表示用户名8487
:表示会话id127.0.0.1
:表示客户端ip2025-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是否集中在特定时间段、表或业务模块,辅助识别负载高峰点