Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update explain and execution summary related docs #19229

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

yibin87
Copy link
Contributor

@yibin87 yibin87 commented Dec 9, 2024

First-time contributors' checklist

What is changed, added or deleted? (Required)

Which TiDB version(s) do your changes apply to? (Required)

Tips for choosing the affected version(s):

By default, CHOOSE MASTER ONLY so your changes will be applied to the next TiDB major or minor releases. If your PR involves a product feature behavior change or a compatibility change, CHOOSE THE AFFECTED RELEASE BRANCH(ES) AND MASTER.

For details, see tips for choosing the affected versions (in Chinese).

  • master (the latest development version)
  • v8.5 (TiDB 8.5 versions)
  • v8.4 (TiDB 8.4 versions)
  • v8.3 (TiDB 8.3 versions)
  • v8.2 (TiDB 8.2 versions)
  • v8.1 (TiDB 8.1 versions)
  • v7.5 (TiDB 7.5 versions)
  • v7.1 (TiDB 7.1 versions)
  • v6.5 (TiDB 6.5 versions)
  • v6.1 (TiDB 6.1 versions)
  • v5.4 (TiDB 5.4 versions)
  • v5.3 (TiDB 5.3 versions)

What is the related PR or file link(s)?

  • This PR is translated from:
  • Other reference link(s):

Do your changes match any of the following descriptions?

  • Delete files
  • Change aliases
  • Need modification after applied to another branch
  • Might cause conflicts after applied to another branch

@ti-chi-bot ti-chi-bot bot added missing-translation-status This PR does not have translation status info. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Dec 9, 2024
@ti-chi-bot ti-chi-bot bot added size/S Denotes a PR that changes 10-29 lines, ignoring generated files. and removed size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Dec 9, 2024
Signed-off-by: yibin <[email protected]>
Signed-off-by: yibin <[email protected]>
Signed-off-by: yibin <[email protected]>
Signed-off-by: yibin <[email protected]>
explain-overview.md Outdated Show resolved Hide resolved
@yibin87 yibin87 requested a review from windtalker December 10, 2024 04:29
Copy link
Contributor

@windtalker windtalker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Copy link

ti-chi-bot bot commented Dec 10, 2024

@windtalker: adding LGTM is restricted to approvers and reviewers in OWNERS files.

In response to this:

lgtm

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@yibin87 yibin87 requested a review from hfxsd December 10, 2024 06:46
@hfxsd hfxsd self-assigned this Dec 11, 2024
@hfxsd hfxsd added translation/doing This PR’s assignee is translating this PR. and removed missing-translation-status This PR does not have translation status info. labels Dec 11, 2024
explain-overview.md Outdated Show resolved Hide resolved
explain-overview.md Outdated Show resolved Hide resolved
explain-overview.md Outdated Show resolved Hide resolved
sql-statements/sql-statement-explain-analyze.md Outdated Show resolved Hide resolved
sql-statements/sql-statement-explain-analyze.md Outdated Show resolved Hide resolved
sql-statements/sql-statement-explain-analyze.md Outdated Show resolved Hide resolved
sql-statements/sql-statement-explain.md Outdated Show resolved Hide resolved
Copy link

ti-chi-bot bot commented Dec 11, 2024

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please ask for approval from hfxsd, ensuring that each of them provides their approval before proceeding. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ti-chi-bot ti-chi-bot bot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Dec 11, 2024
@yibin87 yibin87 requested a review from hfxsd December 11, 2024 05:46
explain-overview.md Outdated Show resolved Hide resolved
explain-overview.md Outdated Show resolved Hide resolved
@hfxsd hfxsd requested a review from qiancai December 12, 2024 02:21
@hfxsd hfxsd added translation/done This PR has been translated from English into Chinese and updated to pingcap/docs-cn in a PR. and removed translation/doing This PR’s assignee is translating this PR. labels Dec 12, 2024
Copy link
Collaborator

@qiancai qiancai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rest LGTM

Comment on lines +179 to +182
- root task 是指在 TiDB 中执行的计算任务;
- cop task 是指使用 TiKV 或 TiFlash 中的 Coprocessor 执行的计算任务;
- batchCop task 是对 TiFlash cop task 的一种优化,可以在一个任务中执行对多个 Region 的查询;
- mpp task 是指利用 TiFlash 的 [MPP 模式](/explain-mpp.md)执行查询。
Copy link
Collaborator

@qiancai qiancai Dec 12, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- root task 是指在 TiDB 中执行的计算任务
- cop task 是指使用 TiKV 或 TiFlash 中的 Coprocessor 执行的计算任务
- batchCop task 是对 TiFlash cop task 的一种优化,可以在一个任务中执行对多个 Region 的查询
- mpp task 是指利用 TiFlash 的 [MPP 模式](/explain-mpp.md)执行查询。
- root task 是指在 TiDB 中执行的计算任务
- cop task 是指使用 TiKV 或 TiFlash 中的 Coprocessor 执行的计算任务
- batchCop task 是对 TiFlash cop task 的一种优化,可以在一个任务中执行对多个 Region 的查询
- MPP task 是指利用 TiFlash 的 [MPP 模式](/explain-mpp.md)执行查询。

- batchCop task 是对 TiFlash cop task 的一种优化,可以在一个任务中执行对多个 Region 的查询;
- mpp task 是指利用 TiFlash 的 [MPP 模式](/explain-mpp.md)执行查询。

SQL 优化的目标之一是将计算尽可能地下推到 TiKV 或 TiFlash 中执行。TiKV 中的 Coprocessor 能支持大部分 SQL 内建函数(包括聚合函数和标量函数)、SQL `LIMIT` 操作、索引扫描和表扫描。TiFlash 中的 Coprocessor 与 TiKV 功能类似,但是不支持索引扫描。
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
SQL 优化的目标之一是将计算尽可能地下推到 TiKV 或 TiFlash 中执行。TiKV 中的 Coprocessor 能支持大部分 SQL 内建函数(包括聚合函数和标量函数)、SQL `LIMIT` 操作、索引扫描和表扫描。TiFlash 中的 Coprocessor 与 TiKV 功能类似,但是不支持索引扫描
SQL 优化的目标之一是将计算尽可能地下推到 TiKV 或 TiFlash 中执行,以提高查询效率。TiKV 中的 Coprocessor 支持大部分 SQL 内建函数(包括聚合函数和标量函数)、`LIMIT` 操作、索引扫描和表扫描。TiFlash 中的 Coprocessor 与 TiKV 功能类似,但不支持索引扫描

| memory | 算子占用内存空间的大小。 |
| disk | 算子占用磁盘空间的大小。 |
| `actRows` | 算子实际输出的数据条数。 |
| `execution info` | 算子的实际执行信息。`time` 表示从进入算子到离开算子的全部 `wall time`,包括所有子算子操作的全部执行时间。如果该算子被父算子多次调用 (`loops`),这个时间就是累积的时间。`loops` 是当前算子被父算子调用的次数。`open` 表示算子初始化所需的时间。`close` 表示从算子处理完所有数据到算子结束的时间。其中 `time` 统计的时间是包含 `open` 和 `close` 的时间。当算子存在多并发执行情况时,执行信息中显示的会是各个并发使用的 `wall time` 加总求和的结果,此时 `time`、`open` 和 `close` 会被替换为 `total_time`, `total_open` 和 `total_close`。|
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| `execution info` | 算子的实际执行信息。`time` 表示从进入算子到离开算子的全部 `wall time`,包括所有子算子操作的全部执行时间。如果该算子被父算子多次调用 (`loops`),这个时间就是累积的时间。`loops` 是当前算子被父算子调用的次数。`open` 表示算子初始化所需的时间。`close` 表示从算子处理完所有数据到算子结束的时间。其中 `time` 统计的时间是包含 `open``close` 的时间。当算子存在多并发执行情况时,执行信息中显示的会是各个并发使用的 `wall time` 加总求和的结果,此时 `time``open``close` 会被替换为 `total_time`, `total_open``total_close`|
| `execution info` | 算子的实际执行信息。`time` 表示从进入算子到离开算子的全部 `wall time`,包括所有子算子操作的全部执行时间。如果该算子被父算子多次调用 (`loops`),这个时间就是累积的时间。`loops` 是当前算子被父算子调用的次数。`open` 表示算子初始化所需的时间。`close` 表示从算子处理完所有数据到算子结束执行的时间。其中 `time` 统计的时间包含 `open``close` 的时间。当算子存在多并发执行情况时,`execution info` 中显示的是各个并发使用的 `wall time` 求和后的结果,此时 `time``open``close` 会被替换为 `total_time`, `total_open``total_close`|

@@ -99,7 +99,7 @@ EXPLAIN ANALYZE SELECT * FROM t1;

## 算子执行信息介绍

`execution info` 信息除了基本的 `time` 和 `loop` 信息外,还包含算子特有的执行信息,主要包含了该算子发送 RPC 请求的耗时信息以及其他步骤的耗时。
`execution info` 信息除了基本的 `time`, `open`, `close` 和 `loop` 信息外,还包含算子特有的执行信息,主要包含了该算子发送 RPC 请求的耗时信息以及其他步骤的耗时。
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`execution info` 信息除了基本的 `time`, `open`, `close``loop` 信息外,还包含算子特有的执行信息,主要包含了该算子发送 RPC 请求的耗时信息以及其他步骤的耗时。
`execution info` 信息除了基本的 `time``open``close``loop` 信息外,还包含算子特有的执行信息,主要包含了该算子发送 RPC 请求的耗时信息以及其他步骤的耗时。

@@ -339,6 +339,18 @@ after key/value request is processed:

对于 writes 和 batch gets,计算方法相似,只是基础成本不同。

### tiflash_wait 信息

当查询涉及到 mpp task 时候时,执行时间还受到各类 `tiflash_wait` 时间的影响,示例如下:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
当查询涉及到 mpp task 时候时,执行时间还受到各类 `tiflash_wait` 时间的影响,示例如下:
当查询涉及到 MPP task 时,执行时间将受到各类 `tiflash_wait` 时间的影响,示例如下:

@@ -52,7 +52,7 @@ ExplainableStmt ::=
|:----------------|:----------------------------------------------------------------------------------------------------------|
| id | 算子的 ID,是算子在整个执行计划中唯一的标识。在 TiDB 2.1 中,ID 会格式化地显示算子的树状结构。数据从孩子结点流向父亲结点,每个算子的父亲结点有且仅有一个。|
| estRows | 算子预计将会输出的数据条数,基于统计信息以及算子的执行逻辑估算而来。在 4.0 之前叫 count。 |
| task | 算子属于的 task 种类。目前的执行计划分成为两种 task,一种叫 **root** task,在 tidb-server 上执行,一种叫 **cop** task,在 TiKV 或者 TiFlash 上并行执行。当前的执行计划在 task 级别的拓扑关系是一个 root task 后面可以跟许多 cop task,root task 使用 cop task 的输出结果作为输入。cop task 中执行的也即是 TiDB 下推到 TiKV 或者 TiFlash 上的任务,每个 cop task 分散在 TiKV 或者 TiFlash 集群中,由多个进程共同执行。 |
| task | 算子属于的 task 种类。目前的执行计划可以分为以下四种 task**root** task,在 tidb-server 上执行**cop** task,在 TiKV 或者 TiFlash 上并行执行;**batchCop** task,在 TiFlash 上并行执行;**mpp** task,在 TiFlash 上并行执行。当前的执行计划在 task 级别的拓扑关系是一个 root task 后面可以跟许多其他种类的 task,root task 使用其他种类 task 的输出结果作为输入。其他种类 task 中执行的也即是 TiDB 下推到 TiKV 或者 TiFlash 上的任务,每个 task 分散在 TiKV 或者 TiFlash 集群中,由多个进程共同执行。 |
Copy link
Collaborator

@qiancai qiancai Dec 12, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| task | 算子属于的 task 种类。目前的执行计划可以分为以下四种 task:**root** task,在 tidb-server 上执行;**cop** task,在 TiKV 或者 TiFlash 上并行执行;**batchCop** task,在 TiFlash 上并行执行;**mpp** task,在 TiFlash 上并行执行。当前的执行计划在 task 级别的拓扑关系是一个 root task 后面可以跟许多其他种类的 task,root task 使用其他种类 task 的输出结果作为输入。其他种类 task 中执行的也即是 TiDB 下推到 TiKV 或者 TiFlash 上的任务,每个 task 分散在 TiKV 或者 TiFlash 集群中,由多个进程共同执行。 |
| task | 算子属于的 task 类型。目前的执行计划可以分为以下四种 task:**root** task,在 tidb-server 上执行;**cop** task,在 TiKV 或者 TiFlash 上并行执行;**batchCop** task,在 TiFlash 上并行执行;**mpp** task,在 TiFlash 上并行执行。当前的执行计划在 task 级别的拓扑关系是一个 root task 后面可以跟许多其他类型的 task,root task 使用其他类型 task 的输出结果作为输入。其他类型 task 中执行的也即是 TiDB 下推到 TiKV 或者 TiFlash 上的任务,每个 task 分散在 TiKV 或者 TiFlash 集群中,由多个进程共同执行。 |

@ti-chi-bot ti-chi-bot bot added the needs-1-more-lgtm Indicates a PR needs 1 more LGTM. label Dec 12, 2024
Copy link

ti-chi-bot bot commented Dec 12, 2024

[LGTM Timeline notifier]

Timeline:

  • 2024-12-12 10:01:07.410369548 +0000 UTC m=+519057.499172091: ☑️ agreed by qiancai.

@@ -174,9 +174,14 @@ Build 总是先于 Probe 执行,并且 Build 总是出现在 Probe 前面。

### Task 简介

目前 TiDB 的计算任务分为两种不同的 task:cop task 和 root task。Cop task 是指使用 TiKV 中的 Coprocessor 执行的计算任务,root task 是指在 TiDB 中执行的计算任务
目前 TiDB 的计算任务分为四种不同的 task:root task, cop task, batchCop task 和 mpp task
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
目前 TiDB 的计算任务分为四种不同的 task:root task, cop task, batchCop task 和 mpp task。
目前 TiDB 的计算任务分为四种不同的 task:root task, cop task, batchCop task 和 MPP task。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs-1-more-lgtm Indicates a PR needs 1 more LGTM. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. translation/done This PR has been translated from English into Chinese and updated to pingcap/docs-cn in a PR.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants