系统活动中的查询性能指标 探索功能提供了从 Looker 实例运行的每个查询的详细细分数据。
例如,您可以使用此探索功能来调查查询的哪些组件加载时间最长。您还可以使用此探索功能来识别查询性能趋势和异常情况。
如需详细了解系统活动中提供的探索功能,请参阅使用系统活动探索功能监控 Looker 使用情况文档页面。
查看查询效果指标
您可以在系统活动的查询性能指标 探索功能中查看查询性能指标。您必须是 Looker 管理员或拥有 see_system_activity 权限,才能查看查询效果指标 探索功能。
了解 Looker 查询生命周期
Looker 发送到数据库的每个查询都会经历几个阶段,每个阶段又包含几个步骤。在查询效果指标 探索功能中,每个步骤都表示为一个维度。
从宏观层面来看,这些阶段可以概念化为如下所示:
- 队列:查询等待可用的异步 工作器。
- 初始化和连接: 工作器准备查询并连接到数据库。
- 运行查询:Looker 在数据库上运行 主查询和任何其他查询(例如 总计或 派生表),并加载 结果。
- **处理结果**:Looker 对结果进行后处理,并将其写入 缓存。
Async processing 跟踪异步工作器在查询上花费的总时间,涵盖第 2 到第 4 阶段。对于来自探索功能和信息中心的查询,这些阶段的累计时长大致等于 Async processing 值。对于下载、预定传送和其他导出的结果,Stream to Cache 与其他阶段重叠;在这些情况下,各个阶段的组合时间可能会超过 Async processing 的总时长。

查询效果指标
以下部分按时间顺序列出了每个查询阶段。每个查询阶段部分按字母顺序列出了其查询步骤。每个查询步骤指标都以秒为单位来衡量所用时间。
时间轴:队列
| 查询步骤 | 指标说明 |
|---|---|
Queued |
查询等待异步工作器运行查询所花费的时间(以秒为单位)。 |
时间轴:初始化和连接
| 查询步骤 | 指标说明 |
|---|---|
Acquire Connection |
Looker 实例获取与客户数据库的连接所花费的时间(以秒为单位)。此步骤包括查找用户凭据和创建连接池(如果连接池尚不存在)所花费的时间。 |
Cache Load |
从 结果集缓存 中提取原始结果所花费的时间(以秒为单位)。 |
Explore Init: Computed |
在开始 prepare 探索功能之前对其进行初始化所花费的时间(以秒为单位)。如果此步骤返回 null 值,则表示探索功能是从缓存中检索的,而不是从头开始加载和解析的。(请参阅 Explore Init: From Cache 步骤。) |
Explore Init: From Cache |
从缓存中提取探索功能初始化所花费的时间(以秒为单位)。如果此步骤返回 null 值,则表示探索功能是加载和解析的,而不是从缓存中提取的。(请参阅 Explore Init: Computed 步骤。) |
Model Init: Computed |
加载和解析运行查询所需的模型所花费的时间(以秒为单位)。如果此步骤返回 null 值,则表示模型是从缓存中检索的,而不是从头开始加载和解析的。(请参阅 Model Init: From Cache 步骤。) |
Model Init: From Cache |
从缓存中提取模型定义所花费的时间(以秒为单位)。如果此步骤返回 null 值,则表示模型是加载和解析的,而不是从缓存中提取的。(请参阅 Model Init: Computed 步骤。) |
Per User Throttler |
查询等待连接可供用户运行查询所花费的时间(以秒为单位)。 |
Prepare |
根据探索功能定义准备查询所花费的时间(以秒为单位)。 |
Project Init |
初始化 LookML 项目或从缓存中读取该项目所花费的时间(以秒为单位)。 |
时间轴:运行查询
| 查询步骤 | 指标说明 |
|---|---|
Execute Grand Totals Query |
运行查询以在客户数据库中生成总计所花费的时间(以秒为单位)。仅适用于同时启用了总计和行总计的查询。 |
Execute Main Query |
在客户数据库中运行 primary 查询所花费的时间(以秒为单位)。这不包括连接初始化时间或限制器时间;此时间轴在连接初始化和任何限制器完成后开始。 |
Execute Misc. Ancillary Queries |
在客户数据库中运行支持查询(例如范围和维度填充查询)所花费的时间(以秒为单位)。 |
Execute Row Totals Query |
运行查询以在客户数据库中生成行总计所花费的时间(以秒为单位)。仅适用于启用了行总计的查询。 |
Execute Totals Query |
运行查询以在客户数据库中生成总计所花费的时间(以秒为单位)。仅适用于启用了总计的查询。 |
Load Grand Totals Query In Memory |
将查询加载到内存中以生成总计所花费的时间(以秒为单位)。仅适用于同时启用了 总计 和 行总计 的 非流式 查询。 |
Load Main Query In Memory |
从客户数据库中将主查询结果加载到内存中所花费的时间(以秒为单位)。仅适用于非流式查询。 |
Load Misc. Ancillary Queries In Memory |
将支持查询(例如范围和维度填充查询)加载到内存中所花费的时间(以秒为单位)。 |
Load Process and Stream Main Query |
加载主查询(来自客户数据库)、处理主查询(在 Looker 实例上)并将其流式传输(到客户端)所花费的时间(以秒为单位)。仅适用于流式查询。 |
Load Row Totals Query In Memory |
将查询加载到内存中以生成行总计所花费的时间(以秒为单位)。仅适用于启用了行总计的非流式查询。 |
Load Totals Query In Memory |
将查询加载到内存中以生成总计所花费的时间(以秒为单位)。仅适用于启用了总计的非流式查询。 |
PDTs |
构建查询所需的永久派生表所花费的时间(以秒为单位)。 |
Temporary DT |
构建临时派生表所花费的时间(以秒为单位)。仅适用于不支持通用表表达式 (CTE) 或内嵌派生表的方言,例如 MySQL。 |
时间轴:处理结果
| 查询步骤 | 指标说明 |
|---|---|
Postprocessing |
后处理查询所需的时间(以秒为单位)。在连接关闭后发生。 |
Stream to Cache |
将结果流式传输到缓存所花费的时间(以秒为单位)。对于下载、预定传送和其他导出的结果,此步骤包括运行查询,因此它与其他阶段的指标重叠。 |
时间轴:总体
| 查询步骤 | 指标说明 |
|---|---|
Async processing |
异步工作器在查询上花费的时间(以秒为单位)。工作器会继续处理查询,直到处理结果阶段完成,因此此指标与此页面上的大多数其他指标重叠。 |
Connection Held |
Looker 实例与客户数据库保持连接的时间(以秒为单位)。此步骤包括客户数据库运行 SQL 查询所花费的时间。 |
每个指标还有一个平均值。时间轴:摘要 群组显示了每个阶段的总时间和平均时间。
BigQuery BI Engine 指标
如果您将 BigQuery BI Engine 与 Looker 搭配使用,则可以使用 查询性能指标 探索功能查看 有关查询的数据库专用信息。对于不使用 BI Engine 的查询以及 BigQuery 数据库以外的数据库的查询,这些指标会返回 null 值。
| 指标 | 指标说明 |
|---|---|
BigQuery Job ID |
查询的 BigQuery 任务 ID(或 NULL)。 为了缩短 BigQuery 中查询的响应时间,Looker 使用 如果 BigQuery 确定无法返回即时结果,BigQuery 将创建一个作业,并且查询将具有 BigQuery 任务 ID(BigQuery 查询 ID 将为 NULL)。 |
BigQuery Query ID |
查询的 BigQuery 查询 ID(或 NULL)。 为了缩短 BigQuery 中查询的响应时间,Looker 使用 如果 BigQuery 确定无法返回即时结果,BigQuery 将创建一个作业,并且查询将具有 BigQuery 任务 ID(BigQuery 查询 ID 将为 NULL)。如果此字段为空,则表示 BigQuery 无法立即执行查询,而是创建了一个作业来运行查询。请改为查看 |
BI Engine Mode |
查询是否能够以部分或完全加速模式运行。如需详细了解此字段的可能值,请参阅 BI Engine 加速统计信息。 |
BI Engine Reason |
如果查询无法以完全加速模式运行,此字段会显示原因。此消息直接来自 Google BigQuery。 |