📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

Top RU



Top RU 按 Request Unit (RU) 消耗对 SQL 语句进行排名,帮助你快速识别哪些查询推动了 RU 使用量。当你在 TiDB Cloud Essential 或 TiDB Cloud Premium 实例指标中发现异常的 RU 峰值时,可以使用 Top RU 找出相关的 SQL 语句,并采取有针对性的措施。

产品套餐对比

Top RU 的功能因 TiDB Cloud 套餐而异:

FeatureTiDB Cloud PremiumTiDB Cloud Essential
Overview tabSupportedSupported
Sliced by Users tabSupportedSupported
Top DB Users (RU) panelSupportedSupported
Top N options5, 10, 20, 1005, 10, 20
Data retention30 days7 days

打开 Top RU

  1. 登录 TiDB Cloud console,然后进入你的 TiDB Cloud Essential 或 TiDB Cloud Premium 实例。
  2. 在左侧导航栏中,点击 Monitoring > Top RU

按 SQL 分析 RU 消耗

Overview 标签页会显示所选时间范围内所有数据库用户中 RU 消耗最高的 SQL 语句。

设置筛选条件

使用页面顶部的筛选条件来缩小数据范围。

  • Time range:选择预设时间区间或自定义时间范围。

    预设选项:Last 15 min30 min1 hour2 hours6 hours12 hours1 day

    对于自定义时间范围:

    • 最早可选的开始日期取决于你的数据保留期:对于 TiDB Cloud Premium 实例为 30 days ago,对于 TiDB Cloud Essential 实例为 7 days ago
    • 单次查询的最大时间窗口为 24 hours
  • Top N:选择要显示的 SQL 语句数量。

    • TiDB Cloud Premium 实例:默认值为 10。可选项为 520100
    • TiDB Cloud Essential 实例:默认值为 10。可选项为 520

查看 SQL 列表

Top N SQL list 会显示符合所选筛选条件的 RU 消耗最高的 SQL 语句:

ColumnDescription
SQL Statement归一化后的 SQL 模板
Total RU该 SQL 语句在所选时间范围内消耗的总 RU
Mean RU该 SQL 语句在所选时间范围内消耗的平均 RU。该值等于总 RU 除以执行次数。
Share该 SQL 语句在所选 TiDB Cloud Essential 或 TiDB Cloud Premium 实例中消耗的总 RU 占比。前 N 条 SQL 语句的占比之和可能不会达到 100%。将 Others 行计算在内后,才能覆盖剩余的 RU 消耗并达到 100%。
Executions该 SQL 语句在所选时间范围内的执行次数
Plans该 SQL 语句在所选时间范围内的执行计划数量。
Total latency该 SQL 语句在所选时间范围内消耗的总执行时间
Mean latency该 SQL 语句在所选时间范围内消耗的平均执行时间。该值等于总执行时间除以执行次数。

查看 RU 趋势

将鼠标悬停在列表中的某条 SQL 语句上,可以在趋势图中高亮显示其 RU trend line。该图表以一分钟间隔展示所选时间范围内的 RU 消耗,帮助你识别峰值从何时开始,以及峰值是否仍在持续。

按用户识别 RU 消耗

Rank by Users 面板

Overview 标签页包含一个 Top 3 DB Users (RU) 面板,按所选时间范围内的总 RU 消耗对数据库用户进行排名。你可以使用该面板判断是否是某个特定数据库用户导致了 RU 峰值。

Sliced by Users 标签页

要进一步查看某个特定数据库用户的 SQL 语句,请执行以下操作:

  1. 点击 Sliced by Users 标签页。
  2. User 筛选器中,选择你要调查的用户。该筛选器最多显示 100 个用户,超出的用户会归类为 Other users
  3. Top N SQL list 和趋势图将只显示所选用户的查询。

深入查看某条 SQL 语句

点击 Top N SQL list 中的某条 SQL 语句,可以打开其详情面板。

执行摘要

SectionContent
SQL Digest归一化后的 SQL 模板 ID
Total RU该 SQL 在所选时间范围内消耗的总 RU
Mean RU该 SQL 语句在所选时间范围内消耗的平均 RU。该值等于总 RU 除以执行次数。
Share该 SQL 语句在所选 TiDB Cloud Essential 或 TiDB Cloud Premium 实例中消耗的总 RU 占比。
Executions该 SQL 语句在所选时间范围内的执行次数。
Plans该 SQL 语句在所选时间范围内的执行计划数量。
Total latency该 SQL 语句在所选时间范围内消耗的总执行时间。
Mean latency该 SQL 语句在所选时间范围内消耗的平均执行时间。该值等于总执行时间除以执行次数。

执行计划

Top RU 会根据 SQL 语句拥有的执行计划数量以及计划数据是否可用来显示信息。

执行计划不可用

当计划数据不可用时,Top RU 不会显示 Plan digestSQL RU Trend by PlanExecution Plan。其他字段仍然可见。

多个执行计划

当 SQL 存在多个执行计划时,面板会先显示一个计划列表:

  • 点击可用的计划以展开其完整详情。
  • 点击不可用的计划以查看其摘要。不可用的计划无法展开。

典型工作流

你可以使用以下工作流来调查 RU 峰值:

  1. 在 TiDB Cloud Essential 或 TiDB Cloud Premium 实例指标中发现 RU 峰值,或者收到触发的告警。
  2. 前往 Monitoring > Top RU,点击 Overview 标签页,并选择覆盖该峰值的时间范围。
  3. 找出 Total RU 最高的 SQL 语句。将鼠标悬停在每条 SQL 语句上查看其 RU 趋势,并识别峰值开始的时间。
  4. 检查 Rank by Users 面板,查看是否是某个特定用户导致了峰值。
  5. 如有需要,前往 Sliced by Users 标签页,选择该用户,并重点查看其 RU 消耗最高的 SQL 语句。
  6. 点击某条 SQL 语句以打开其详情面板。查看执行计划,寻找优化机会,例如缺失索引。
  7. 使用 Query Template ID 与 Slow Query 或 SQL Statement 进行交叉比对,以获取更多执行上下文。
  8. 应用优化措施,例如添加索引、重写 SQL 或调整业务逻辑。
  9. 返回 Top RU 页面,并选择最近的时间范围,以确认 RU 消耗是否已经下降。

限制

  • 不等同于计费 RU:Top RU 数据用于近实时可观测性,可能与 TiDB Cloud 账单中报告的 RU 使用量不同。请勿将 Top RU 数据用于计费对账或审计。
  • Top N 聚合:只有 RU 消耗最高的 SQL 语句会被单独显示。RU 消耗较低的 SQL 语句会被聚合到 Others 类别中。
  • 数据新鲜度:数据以分钟级粒度更新。
  • 最大查询窗口:一次最多可以查询 24 小时的数据。

FAQ

Top RU 和 Top SQL 有什么区别?

Top SQL 按特定 TiDB 或 TiKV 节点上的 CPU 时间对 SQL 语句进行排名。它适用于 TiDB Cloud Dedicated 集群。

Top RU 按实例级别的 Request Unit (RU) 消耗对 SQL 语句进行排名,并支持按用户维度拆分。它适用于 TiDB Cloud Premium 实例和 TiDB Cloud Essential 实例。

为什么 Top RU 中没有数据?

  • 确保所选时间范围内存在实际的 SQL 工作负载。
  • 在运行工作负载至少 1 分钟后刷新页面。
  • 查看 TiDB Cloud Release Notes,确认你的 TiDB Cloud Essential 或 TiDB Cloud Premium 实例版本和区域支持 Top RU。

如果问题仍然存在,请联系 TiDB Cloud Support

Top RU 是否等同于计费 RU?

不是。Top RU 显示的是用于诊断高消耗 SQL 的近实时 RU 统计信息。对于计费和成本管理,请参考 TiDB Cloud 计费控制台中的 billing RU。

指标中的 RU 使用量与 Top RU 有什么区别?

  • RU/s 指标显示的是整个实例级别 1 分钟平均 RU 速率(RU/s)。
  • Top RU 显示的是所选时间范围内每条 SQL 语句的累计 RU(RU/s × duration),帮助你识别哪些 SQL 语句总体上消耗了最多资源。

文档内容是否有帮助?