Top SQL

警告:

Top SQL 目前为实验特性,不建议在生产环境中使用。

本文介绍如何使用 Top SQL 找到一段时间内对某个 TiDB 或 TiKV 节点消耗负载较大的 SQL 查询。例如,你可以通过 Top SQL 找出一个低负载的数据库上执行的一条消耗 99% 负载的分析查询。

针对指定的 TiDB 或 TiKV 节点,Top SQL 可以提供以下功能:

  • 展示指定时间范围内消耗负载最多的 5 类 SQL 查询。
  • 展示某一查询的 CPU 使用量、每秒请求数、平均延迟、查询计划等信息,作为改善业务的潜在性能优化点。

启用 Top SQL

Top SQL 功能默认关闭。你可以通过以下方法在整个集群范围内启用该功能:

  • 方法一:登录 TiDB Dashboard,点击左侧面板中的 Top SQL,然后点击页面右上角的齿轮按钮,并打开 Top SQL 功能开关。
  • 方法二:配置 TiDB 系统变量 tidb_enable_top_sql的值为 ON

注意:

启用 Top SQL 会对集群的性能产生轻微的影响。

使用 Top SQL

开启 Top SQL 后,只需要登录 TiDB Dashboard,然后点击左侧面板中的 Top SQL 即可使用 Top SQL。

Top SQL

使用提示:

  • 你可以在页面顶部的下拉列表里选择要展示的节点和时间范围,也可以在图表中选择时间范围。
  • 如果图表中显示的数据已过时,你可以点击刷新 (Refresh) 按钮,也可以在刷新 (Refresh) 下拉列表中选择是否自动刷新,以及自动刷新间隔。
  • 列表中展示了选中节点、选中时间范围内消耗负载最多的 5 类查询。
  • 点击选中列表中的某个查询类型,可以查看这类查询在这个节点上的执行计划,以及详细执行信息,例如 Call/sec (平均每秒请求数)、 Scan Rows/sec (平均每秒扫描行数)、 Scan Indexes/sec (平均每秒扫描索引数)、Latency/call (平均延迟)。

Top SQL Details