原始网页:https://www.cockroachlabs.com/docs/stable/admin-ui-statements-page.html


(New in v2.1) Statements页能够帮助用户查看热点查询以及高时延的SQL语句。用户还能够点击一个单独的SQL语句,在Statement Details页中查看到该语句的细节信息。

用户可以通过登陆Admin界面,点击左手边的Statements来查看该页。

图片

限制

Statements页显示的是在指定的时间窗口内执行的SQL语句的细节信息,显示的内容将周期性地被擦除。擦除后,在执行下一组语句之前,用户将不会在页面上查看到任何语句。默认情况下,该时间周期为1小时。用户可以通过修改集群配置项diagnostics.reporting.interval来指定时间。

选择一个应用程序

如果用户在集群上运行了多个应用程序,Statements页在默认情况下能够显示来自所有应用程序的语句。如果用户需要查询某个应用程序有关的所有语句,可以点击下拉式菜单App,选择指定的应用程序。

Statements页详细介绍

SQL语句指纹

Statements页显示的是SQL语句指纹,而不是单独的SQL语句。

SQL语句指纹指的是一组相似的、以抽象形式表达的SQL语句,当中用下划线_替换具体的属性值。将相似的SQL语句进行分组,生成的SQL语句指纹能够帮助用户快速确认热点查询以及这类型查询的时延。

两个或者更多在抽象处理后形式相同的语句(处理过程为替换具体的字符串、数值为_符号)将生成一个SQL语句指纹。例如,以下语句在数值替换为下划线以后将拥有同样的形式:

因此,它们拥有同样指纹:

INSERT INTO new_order(product_id, customer_id, no_w_id) VALUES (_, _, _)

而对于以下语句,它们不能生成同一个指纹:

参数

Statements页显示的是每个SQL语句指纹的总执行时间、执行计数、重试的次数、影响的行数、时延等信息。默认情况下列表中的SQL语句指纹,将根据每个指纹的总执行时间进行排序。用户也可以点击执行计数、重试的次数、影响的行数或时延来自定义排序。

每个SQL语句指纹提供了以下内容信息:

参数 简介
Statement SQL语句或是相似指纹的SQL语句。

用户可以点击特定行,进入该行语句指纹对应的Statement Details页,查看语句指纹相关的更多细节。
Time 在最近1小时或是自定义时间间隔内,一个SQL语句(或是相似指纹的SQL语句)执行时间的总和。
Execution Count 在最近1小时或是自定义时间间隔内,一个SQL语句(或是相似指纹的SQL语句)执行计数。

执行计数将以数值和水平条形图的形式显示。条形图用颜色标记,表示执行计数中执行成功(用蓝色表示)与执行失败(用红色表示)的比率。用户也可以比较不同SQL语句指纹的条形图,获取更多的信息。

用户可以通过执行计数进行排序。
Retries 在最近1小时或是自定义时间间隔内,一个SQL语句(或是相似指纹的SQL语句)重试的累计计数。
Rows Affected 在最近1小时或是自定义时间间隔内,一个SQL语句(或是相似指纹的SQL语句)返回行数的平均值。

该指标以数值和水平条形图的形式显示。条形图用颜色标记,蓝色代表返回行数的平均值,黄色代表返回行数的标准差。用户也可以比较不同SQL语句指纹的条形图,获取更多的信息。

用户可以依据这个属性对列表进行排序。
Latency 在最近1小时或是自定义时间间隔内,一个SQL语句(或是相似指纹的SQL语句)服务时延的平均值。

该指标以数值和水平条形图的形式显示。条形图用颜色标记,蓝色代表服务时延的平均值,黄色代表服务时延的标准差。用户也可以比较不同SQL语句指纹的条形图,获取更多的信息。

用户可以依据这个属性对列表进行排序。

Statement Detail页

Statement Details页显示的是指定语句指纹具体的执行时间、执行次数、返回行数、各个阶段的时延以及网关节点的时延。

图片

Latency by Phase

Latency by Phase表提供了的SQL语句(或是相似指纹的SQL语句)服务时延的平均值和标准差,同时也提供了各个执行阶段(解析、计划、执行)时延的平均值和标准差。该指标以数值和水平条形图的形式显示。条形图用颜色标记,蓝色代表服务时延的平均值,黄色代表服务时延的标准差。

Latency by Gateway Node

Statistics by Gateway Node表提供了指定SQL语句指纹在每个网关节点上详细的数值指标。对于每个网关节点,显示的内容如下:

参数 简介
Node 网关节点的ID
Time 在最近1小时或是自定义时间间隔内,SQL语句的累计执行时间。
Execution Count 一个SQL语句(或是相似指纹的SQL语句)执行的总次数。
Retries 在最近1小时或是自定义时间间隔内,一个SQL语句(或是相似指纹的SQL语句)重试次数的累计值。
Rows Affected 在最近1小时或是自定义时间间隔内,一个SQL语句(或是相似指纹的SQL语句)返回行数的平均值。

该指标以数值和水平条形图的形式显示。条形图用颜色标记,蓝色代表返回行数的平均值,黄色代表返回行数的标准差。用户也可以比较不同SQL语句指纹的条形图,获取更多的信息。

用户可以依据这个属性对列表进行排序。

Execution Count

Execution Count表提供了一下参数内容(以数值和条形图的形式展示):

参数 简介
First Attempts 在最近1小时或是自定义时间间隔内,一个SQL语句(或是相似指纹的SQL语句)首次尝试执行的累计次数。
Retries 在最近1小时或是自定义时间间隔内,一个SQL语句(或是相似指纹的SQL语句)重试的累计次数。
Max Retries 在最近1小时或是自定义时间间隔内,该SQL语句指纹对应的SQL语句中最多重试了多少次。

例如,如果一个SQL语句指纹对应的三个SQL语句的重试次数为0、1、5,则该指标数值为最大值5。
Total 该SQL语句指纹对应的SQL语句执行次数的累加值,由First Attempts和Retries这两个指标累加计算而来。

Row Count

Row Count表提供了一个SQL语句(或是相似指纹的SQL语句)返回行数的平均值和标准差。该指标以数值和条形图的形式显示。

Statistics

右手边的Statements Details页的statistics块,展示了该SQL语句指纹有关的细节信息,内容如下:

参数 简介
Total time 在最近1小时或是自定义时间间隔内,一个SQL语句(或是相似指纹的SQL语句)执行时间的累计值。
Execution count 在最近1小时或是自定义时间间隔内,一个SQL语句(或是相似指纹的SQL语句)执行的总次数。
Executed without retry 在最近1小时或是自定义时间间隔内,一个SQL语句(或是相似指纹的SQL语句)中首次执行成功的占比。
Mean service latency 在最近1小时或是自定义时间间隔内,一个SQL语句(或是相似指纹的SQL语句)服务时延的平均值。
Mean number of rows 在最近1小时或是自定义时间间隔内,一个SQL语句(或是相似指纹的SQL语句)返回行数的平均值。

statistics块下,还提供了一下信息:

参数 简介
App 应用程序通过session配置application_name指定的名称。
Distributed execution? 表明该语句执行是否是分布式的。
Used cost-based optimizer? 表明该SQL语句(或是或是相似指纹的SQL语句)是否使用了基于代价的优化器。
Failed? 表明该SQL语句(或是或是相似指纹的SQL语句)是否执行成功。