AskTUG SQL执行计划上传规范

1、场景

在SQL性能分析中经常需要用户提供SQL的执行计划,但是有些用户提供的SQL执行计划是一串的文本,阅读性比较差,也有些用户使用截图的方式上传执行计划,这种情况如果执行计划比较多,截图就很容易只看到部分内容,不完整。为了提高问题排查的效率,在这里提出SQL执行计划上传规范。

2、执行计划最佳提交方式

英文输入法模式下,在执行计划的最前面输入```(3个反引号),同时在执行计划的最后面输入```(3个反引号),再右边的预览就可以显示出规范的执行计划了。创建主题和回复的输入框都支持该功能。

创建主题输入框

回复输入框

3、样例SQL

mysql> explain select * from INFORMATION_SCHEMA.TABLES as a left join INFORMATION_SCHEMA.TABLES as b on a.TABLE_NAME=b.TABLE_NAME;
+-----------------------------+----------+------+---------------+--------------------------------------------------+
| id                          | estRows  | task | access object | operator info                                    |
+-----------------------------+----------+------+---------------+--------------------------------------------------+
| HashJoin_7                  | 10000.00 | root |               | left outer join, equal:[eq(Column#3, Column#27)] |
| ├─Selection_10(Build)       | 8000.00  | root |               | not(isnull(Column#27))                           |
| │ └─MemTableScan_11         | 10000.00 | root | table:TABLES  |                                                  |
| └─MemTableScan_9(Probe)     | 10000.00 | root | table:TABLES  |                                                  |
+-----------------------------+----------+------+---------------+--------------------------------------------------+
4 rows in set (0.00 sec)

4、注意事项

  • SQL执行计划尽量不要使用截图方式上传。
  • 不要使用\G方式格式化SQL执行计划,这样会导致SQL执行的层次不直观。
  • 在输入反引号的时候需要注意当前输入法模式为英文模式。
2赞

棒棒哒:call_me_hand::call_me_hand:

:call_me_hand::call_me_hand::call_me_hand:表妹YYDS

YYDS ,变成红色好不习惯~ :joy:

表妹 beautiful

我也在调整适应~