Merge pull request #23457 from sevirov/sevirov-DOCSUP-8737-edit_and_translate_to_russian_explain

DOCSUP-8737: Edit and translate to Russian (EXPLAIN)
This commit is contained in:
Nikolai Kochetov 2021-04-26 14:09:24 +03:00 committed by GitHub
commit 8fec997d3a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 163 additions and 9 deletions

View File

@ -5,7 +5,7 @@ toc_title: EXPLAIN
# EXPLAIN Statement {#explain}
Show the execution plan of a statement.
Shows the execution plan of a statement.
Syntax:
@ -65,7 +65,7 @@ SelectWithUnionQuery (children 1)
### EXPLAIN SYNTAX {#explain-syntax}
Return query after syntax optimizations.
Returns query after syntax optimizations.
Example:
@ -88,15 +88,16 @@ FROM
) AS `--.s`
CROSS JOIN system.numbers AS c
```
### EXPLAIN PLAN {#explain-plan}
Dump query plan steps.
Settings:
- `header` — Print output header for step. Default: 0.
- `description` — Print step description. Default: 1.
- `actions` — Print detailed information about step actions. Default: 0.
- `header` — Prints output header for step. Default: 0.
- `description` — Prints step description. Default: 1.
- `actions` — Prints detailed information about step actions. Default: 0.
Example:
@ -121,9 +122,10 @@ Union
Settings:
- `header` — Print header for each output port. Default: 0.
- `graph` — Use DOT graph description language. Default: 0.
- `compact` — Print graph in compact mode if graph is enabled. Default: 1.
- `header` — Prints header for each output port. Default: 0.
- `graph` — Prints a graph described in the [DOT](https://en.wikipedia.org/wiki/DOT_(graph_description_language)) graph description language. Default: 0.
- `compact` — Prints graph in compact mode if `graph` setting is enabled. Default: 1.
- `indexes` — Shows used indexes, the number of filtered parts, and granules for every index applied. Default: 0. Supported for [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md) tables.
Example:

View File

@ -0,0 +1,152 @@
---
toc_priority: 39
toc_title: EXPLAIN
---
# EXPLAIN {#explain}
Выводит план выполнения запроса.
Синтаксис:
```sql
EXPLAIN [AST | SYNTAX | PLAN | PIPELINE] [setting = value, ...] SELECT ... [FORMAT ...]
```
Пример:
```sql
EXPLAIN SELECT sum(number) FROM numbers(10) UNION ALL SELECT sum(number) FROM numbers(10) ORDER BY sum(number) ASC FORMAT TSV;
```
```sql
Union
Expression (Projection)
Expression (Before ORDER BY and SELECT)
Aggregating
Expression (Before GROUP BY)
SettingQuotaAndLimits (Set limits and quota after reading from storage)
ReadFromStorage (SystemNumbers)
Expression (Projection)
MergingSorted (Merge sorted streams for ORDER BY)
MergeSorting (Merge sorted blocks for ORDER BY)
PartialSorting (Sort each block for ORDER BY)
Expression (Before ORDER BY and SELECT)
Aggregating
Expression (Before GROUP BY)
SettingQuotaAndLimits (Set limits and quota after reading from storage)
ReadFromStorage (SystemNumbers)
```
## Типы EXPLAIN {#explain-types}
- `AST` — абстрактное синтаксическое дерево.
- `SYNTAX` — текст запроса после оптимизации на уровне AST.
- `PLAN` — план выполнения запроса.
- `PIPELINE` — конвейер выполнения запроса.
### EXPLAIN AST {#explain-ast}
Дамп AST запроса.
Пример:
```sql
EXPLAIN AST SELECT 1;
```
```sql
SelectWithUnionQuery (children 1)
ExpressionList (children 1)
SelectQuery (children 1)
ExpressionList (children 1)
Literal UInt64_1
```
### EXPLAIN SYNTAX {#explain-syntax}
Возвращает текст запроса после применения синтаксических оптимизаций.
Пример:
```sql
EXPLAIN SYNTAX SELECT * FROM system.numbers AS a, system.numbers AS b, system.numbers AS c;
```
```sql
SELECT
`--a.number` AS `a.number`,
`--b.number` AS `b.number`,
number AS `c.number`
FROM
(
SELECT
number AS `--a.number`,
b.number AS `--b.number`
FROM system.numbers AS a
CROSS JOIN system.numbers AS b
) AS `--.s`
CROSS JOIN system.numbers AS c
```
### EXPLAIN PLAN {#explain-plan}
Дамп шагов выполнения запроса.
Настройки:
- `header` — выводит выходной заголовок для шага. По умолчанию: 0.
- `description` — выводит описание шага. По умолчанию: 1.
- `actions` — выводит подробную информацию о действиях, выполняемых на данном шаге. По умолчанию: 0.
Пример:
```sql
EXPLAIN SELECT sum(number) FROM numbers(10) GROUP BY number % 4;
```
```sql
Union
Expression (Projection)
Expression (Before ORDER BY and SELECT)
Aggregating
Expression (Before GROUP BY)
SettingQuotaAndLimits (Set limits and quota after reading from storage)
ReadFromStorage (SystemNumbers)
```
!!! note "Примечание"
Оценка стоимости выполнения шага и запроса не поддерживается.
### EXPLAIN PIPELINE {#explain-pipeline}
Настройки:
- `header` — выводит заголовок для каждого выходного порта. По умолчанию: 0.
- `graph` — выводит граф, описанный на языке [DOT](https://ru.wikipedia.org/wiki/DOT_(язык)). По умолчанию: 0.
- `compact` — выводит граф в компактном режиме, если включена настройка `graph`. По умолчанию: 1.
- `indexes` — показывает используемые индексы, количество отфильтрованных кусков и гранул для каждого примененного индекса. По умолчанию: 0. Поддерживается для таблиц семейства [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md).
Пример:
```sql
EXPLAIN PIPELINE SELECT sum(number) FROM numbers_mt(100000) GROUP BY number % 4;
```
```sql
(Union)
(Expression)
ExpressionTransform
(Expression)
ExpressionTransform
(Aggregating)
Resize 2 → 1
AggregatingTransform × 2
(Expression)
ExpressionTransform × 2
(SettingQuotaAndLimits)
(ReadFromStorage)
NumbersMt × 2 0 → 1
```
[Оригинальная статья](https://clickhouse.tech/docs/ru/sql-reference/statements/explain/) <!--hide-->