Skip to content

Commit a405cf8

Browse files
committed
*: add test info and tiny update
1 parent a16078e commit a405cf8

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

identify-slow-queries.md

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -178,10 +178,12 @@ Slow Query 基础信息:
178178
### 相关 Hint
179179

180180
通过 Hit `WRITE_SLOW_LOG` 强制控制输出慢日志。
181+
181182
- 不受任何阈值或触发规则限制,即无论该 SQL 是否达到慢日志打印阈值,都会打印慢日志。
182183
- 暂不支持强制关闭打印慢日志的方式(如 `WRITE_SLOW_LOG(FALSE)`)。
183184

184185
使用示例:
186+
185187
```sql
186188
SELECT /*+ WRITE_SLOW_LOG */ count(*) FROM t t1, t t2 WHERE t1.a = t2.b;
187189
```
@@ -190,21 +192,21 @@ SELECT /*+ WRITE_SLOW_LOG */ count(*) FROM t t1, t t2 WHERE t1.a = t2.b;
190192

191193
* [tidb_slow_log_threshold](/system-variables.md#tidb_slow_log_threshold):设置慢日志的阈值,执行时间超过阈值的 SQL 语句将被记录到慢日志中。默认值是 300 ms。
192194
* [tidb_slow_log_rules](/system-variables.md#tidb_slow_log_rules):用于定义慢日志的触发规则,支持多维度指标组合条件,实现更加灵活和精细化的日志记录控制。此变量在新版本中引入,逐步替代传统的单一阈值控制方式,即替代 `tidb_slow_log_threshold` 的使用。
193-
* 未设置 tidb_slow_log_rules
194-
* 慢日志触发仍依赖 tidb_slow_log_threshold,Query_time 阈值取自该变量,以保持向后兼容。
195-
* 已设置 tidb_slow_log_rules
196-
* 配置的规则优先生效,tidb_slow_log_threshold 将被忽略。
197-
* 若希望规则中仍包含 Query_time 的触发条件,可在设置规则时指定。
198-
* 规则匹配逻辑(多条规则之间采用 OR 关系):
199-
* Session 作用域规则:优先匹配,如果匹配成功,则打印慢日志。
200-
* Global 作用域规则:仅在 Session 规则未匹配时考虑:
201-
* 若规则指定 ConnID 并与当前 Session 的 ConnID 匹配,则使用该规则。
202-
* 若规则未指定 ConnID(全局通用规则),则使用该规则。
203-
* 显示变量的行为与普通系统变量一致。
195+
* 未设置 tidb_slow_log_rules
196+
* 慢日志触发仍依赖 tidb_slow_log_threshold,Query_time 阈值取自该变量,以保持向后兼容。
197+
* 已设置 tidb_slow_log_rules
198+
* 配置的规则优先生效,tidb_slow_log_threshold 将被忽略。
199+
* 若希望规则中仍包含 Query_time 的触发条件,可在设置规则时指定。
200+
* 规则匹配逻辑(多条规则之间采用 OR 关系):
201+
* Session 作用域规则:优先匹配,如果匹配成功,则打印慢日志。
202+
* Global 作用域规则:仅在 Session 规则未匹配时考虑:
203+
* 若规则指定 ConnID 并与当前 Session 的 ConnID 匹配,则使用该规则。
204+
* 若规则未指定 ConnID(全局通用规则),则使用该规则。
205+
* 显示变量的行为与普通系统变量一致。
204206
>
205207
> 说明:`tidb_slow_log_rules` 用于替换单一阈值的方式,实现更灵活和精细化的慢日志控制,支持多维度指标组合条件。
206208
>
207-
> 建议:在启用 `tidb_slow_log_rules` 后,同时配置 `tidb_slow_log_max_per_sec`,以限制慢日志打印频率,防止基于规则的慢日志触发过于频繁
209+
> 建议:在资源充足的测试环境下,多维慢日志规则(`tidb_slow_log_rules`)生成的慢日志数量在默认阈值基础上增加约 1,000 倍以内,对系统性能影响有限;当慢日志数量过大(超过 1 万倍级别)时,会显著影响 TPS/QPS 和平均延迟。因此,建议根据业务负载和慢日志预期量谨慎配置规则,推荐结合 `tidb_slow_log_max_per_sec` 限制打印速率,避免日志洪泛影响性能
208210
* [tidb_slow_log_max_per_sec](/system-variables.md#tidb_slow_log_max_per_sec):设置控制每秒打印慢日志的上限,默认值为 0。
209211
* 当值为 0,其表示不限制每秒打印的慢日志数量。
210212
* 当值大于 0 时,TiDB 每秒最多打印指定数量的慢日志,超过部分将被丢弃,不会写入慢日志文件。

system-variables.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5080,6 +5080,7 @@ Query OK, 0 rows affected, 1 warning (0.00 sec)
50805080
- 默认值:""
50815081
- 类型:字符串
50825082
- 用于定义慢日志的触发规则,支持基于多维度指标的组合条件,实现更加灵活和精细化的日志记录控制。
5083+
50835084
> **注意:**
50845085
>
50855086
> 建议在启用 [`tidb_slow_log_rules`](#tidb_slow_log_rules) 后,同时配置 [`tidb_slow_log_max_per_sec`](#tidb_slow_log_max_per_sec) 以限制慢日志打印频率,防止基于规则的慢日志触发过于频繁。

0 commit comments

Comments
 (0)