Skip to content

Commit

Permalink
*: remove doc redundant space #1266
Browse files Browse the repository at this point in the history
  • Loading branch information
crazycs520 committed Apr 23, 2019
2 parents e8c62ea + febae2b commit f4a5437
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 20 deletions.
2 changes: 1 addition & 1 deletion op-guide/tidb-config-file.md
Expand Up @@ -58,7 +58,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/
### `slow-query-file`

+ 慢查询日志的文件名。
+ 默认: "tidb-slow.log" ,注:由于 TiDB V2.1.8 更新了慢日志格式,所以将慢日志单独输出到了慢日志文件。 V2.1.8 之前的版本,该变量的默认值是 ""。
+ 默认: "tidb-slow.log",注:由于 TiDB V2.1.8 更新了慢日志格式,所以将慢日志单独输出到了慢日志文件。V2.1.8 之前的版本,该变量的默认值是 ""。
+ 设置后,慢查询日志会单独输出到该文件。

### `slow-threshold`
Expand Down
38 changes: 19 additions & 19 deletions sql/slow-query.md
Expand Up @@ -11,7 +11,7 @@ TiDB 在 V2.1.8 之后更改了慢日志格式,V2.1.8 之前的版本请看[

### 获取日志

TiDB 会将执行时间超过 [slow-threshold](../op-guide/tidb-config-file.md#slow-threshold) 的语句默认单独输出到 [slow-query-file](../op-guide/tidb-config-file.md#slow-query-file) 文件中 ,并对慢日志的格式做了兼容,可以用 `pt-query-digest` 直接分析慢日志 文件。`slow-threshold` 可以通过配置文件修改,默认是 300ms。`slow-query-file` 默认是 `tidb-slow.log`
TiDB 会将执行时间超过 [slow-threshold](../op-guide/tidb-config-file.md#slow-threshold) 的语句默认单独输出到 [slow-query-file](../op-guide/tidb-config-file.md#slow-query-file) 文件中 ,并对慢日志的格式做了兼容,可以用 `pt-query-digest` 直接分析慢日志 文件。`slow-threshold` 可以通过配置文件修改,默认是 300ms。`slow-query-file` 默认是 `tidb-slow.log`

### 示例

Expand All @@ -38,32 +38,32 @@ select * from t_slim, t_wide where t_slim.c0=t_wide.c0;
* `Time`:表示日志打印时间。
* `Txn_start_ts`:表示事务的开始时间戳,也是事务的 ID, 可以用这个值在日志中 grep 出事务相关的日志。
* `User`:表示执行语句的用户名。
* `Conn_ID`:表示 connection ID,即 session ID, 可以用类似 `con:3 ` 的关键字在 TiDB 日志中 grep 出 session ID 为 3 的日志。
* `Query_time`:表示执行这个语句花费的时间。只有执行时间超过 slow-threshold 的语句才会输出这个日志,单位是秒,一下所有的时间字段的单位都是秒
* `Process_time`:执行 SQL 在 TiKV 的处理时间之和,因为数据会并行的发到 TiKV 执行,这个值可能会超过 `Query_time`
* `Wait_time`:表示这个语句在 TiKV 的等待时间之和,因为 TiKV 的 Coprocessor 线程数是有限的,当所有的 Coprocessor 线程都在工作的时候,请求会排队当队列中有某些请求耗时很长的时候,后面的请求的等待时间都会增加。
* `Conn_ID`:表示 connection ID,即 session ID, 可以用类似 `con:3` 的关键字在 TiDB 日志中 grep 出 session ID 为 3 的日志。
* `Query_time`:表示执行这个语句花费的时间。只有执行时间超过 slow-threshold 的语句才会输出这个日志,单位是秒,以下所有的时间字段的单位都是秒
* `Process_time`:执行 SQL 在 TiKV 的处理时间之和,因为数据会并行的发到 TiKV 执行,这个值可能会超过 `Query_time`
* `Wait_time`:表示这个语句在 TiKV 的等待时间之和,因为 TiKV 的 Coprocessor 线程数是有限的,当所有的 Coprocessor 线程都在工作的时候,请求会排队当队列中有某些请求耗时很长的时候,后面的请求的等待时间都会增加。
* `Backoff_time`:表示语句遇到需要重试的错误时在重试前等待的时间,常见的需要重试的错误有以下几种:遇到了 lock、Region 分裂、`tikv server is busy`
* `Request_count`:表示这个语句发送的 Coprocessor 请求的数量。
* `Total_keys`:表示 Coprocessor 扫过的 key 的数量。
* `Process_keys`:表示 Coprocessor 处理的 key 的数量。相比 total_keys,processed_keys 不包含 MVCC 的旧版本。如果 processed_keys 和 total_keys 相差很大,说明旧版本比较多。
* `DB`:表示当前的 database。
* `Index_ids` :表示语句涉及到的索引的 ID
* `Index_ids`:表示语句涉及到的索引的 ID
* `Is_internal`:表示是否是 TiDB 内部 SQL。true 为TiDB 内部执行的SQL, 比如 analyze,load variable 等;false 为用户执行的 SQL 。
* `Digest`:表示 SQL 语句的指纹。
* `Memory_max`:表示执行期间做多时候使用的内存数量, 单位为byte。
* `Num_cop_tasks`表示cop-tasks的数目
* `Cop_proc_avg`: cop-task的平均执行时间
* `Cop_proc_p90`: cop-task的P90分位执行时间
* `Cop_proc_max`: cop-task的最大执行时间
* `Cop_proc_addr`: 执行时间最长的cop-task所在地址
* `Cop_wait_avg`: cop-task的平均等待时间
* `Cop_wait_p90`: cop-task的P90分位等待时间
* `Cop_wait_max`: cop-task的最大等待时间
* `Cop_wait_addr`: 等待时间最长的cop-task所在地址
* `Num_cop_tasks`表示 cop-tasks 的数目
* `Cop_proc_avg`cop-task 的平均执行时间
* `Cop_proc_p90`cop-task 的P90分位执行时间
* `Cop_proc_max`cop-task 的最大执行时间
* `Cop_proc_addr`:执行时间最长的 cop-task 所在地址
* `Cop_wait_avg`cop-task 的平均等待时间
* `Cop_wait_p90`cop-task 的P90分位等待时间
* `Cop_wait_max`cop-task 的最大等待时间
* `Cop_wait_addr`:等待时间最长的 cop-task 所在地址
* `Query`:表示 SQL 语句。慢日志里面不会打印 `Query`,但映射到内存表后,对应的字段叫 `Query`

### 慢日志内存映射表
为了方便用 SQL 查询定位慢查询,TiDB 将慢日志内容解析后映射到 `INFORMATION_SCHEMA.SLOW_QUERY` 表中,表中 column 名和慢日志中记录的字段名一一对应
为了方便用 SQL 查询定位慢查询,TiDB 将慢日志内容解析后映射到 `INFORMATION_SCHEMA.SLOW_QUERY` 表中,表中 column 名和慢日志中记录的字段名一一对应。

```sql
tidb > show create table INFORMATION_SCHEMA.SLOW_QUERY;
Expand Down Expand Up @@ -167,10 +167,10 @@ tidb > select query, query_time, stats from INFORMATION_SCHEMA.`SLOW_QUERY` wher

#### 解析其他的 TiDB 慢日志文件

目前查询 `INFORMATION_SCHEMA.SLOW_QUERY` 只会解析配置文件中 `slow-query-file` 设置的慢日志文件名,默认是 "tidb-slow.log" 。 但如果想要解析其他的日志文件,可以通过设置 session 变量 `tidb_slow_query_file` 为具体的文件路径,然后查询 `INFORMATION_SCHEMA.SLOW_QUERY` 就会按照设置的路径去解析慢日志文件。
目前查询 `INFORMATION_SCHEMA.SLOW_QUERY` 只会解析配置文件中 `slow-query-file` 设置的慢日志文件名,默认是 "tidb-slow.log" 。 但如果想要解析其他的日志文件,可以通过设置 session 变量 `tidb_slow_query_file` 为具体的文件路径,然后查询 `INFORMATION_SCHEMA.SLOW_QUERY` 就会按照设置的路径去解析慢日志文件。
```sql
/* 设置慢日志文件路径,方便解析其他的慢日志文件,tidb_slow_query_file 变量的作用域是 session */
mysql test@127.0.0.1:test> set tidb_slow_query_file="/path-to-log/tidb-slow.log"
tidb > set tidb_slow_query_file="/path-to-log/tidb-slow.log"
Query OK, 0 rows affected
Time: 0.001s
```
Expand All @@ -179,7 +179,7 @@ Time: 0.001s

#### 用 pt-query-digest 工具分析 TiDB 慢日志

可以用 pt-query-digest 工具分析 TiDB 慢日志,下面是示例。
可以用 pt-query-digest 工具分析 TiDB 慢日志,下面是示例。

```shell
$ pt-query-digest --report tidb-slow.log
Expand Down

0 comments on commit f4a5437

Please sign in to comment.