监控活跃查询

本页面介绍如何监控数据库中的活跃查询并对这些查询进行问题排查。监控这些查询有助于确定出现系统延迟和 CPU 使用率较高的原因。

Query Insights 信息中心,您可以查看活跃事务的摘要以及包含关联查询和统计信息的事务列表。事务按事务开始时间进行显示。如果正在运行大量查询,则结果可能仅限于总查询的一部分。

准备工作

创建自定义角色并添加以下权限。然后,向需要使用 Query Insights 的每个用户账号授予该角色。

Tasks 角色 权限
查看数据库活动摘要和长时间运行的事务 databaseinsights.viewer databaseinsights.activeQueries.fetch
databaseinsights.activitySummary.fetch
查看实例活动摘要 cloudsql.viewer 不适用
终止会话 cloudsql.editor
databaseinsights.operationsAdmin
不适用

启用活跃查询

如需启用活跃查询,请完成以下步骤:

  1. 在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 如需打开实例的概览页面,请点击实例名称。
  3. 配置图块中,点击修改配置
  4. 展开 Query Insights 窗格。
  5. 如果启用 Query Insights 复选框处于未选中状态,请选中该复选框。启用 Query Insights 后,系统会提供活跃查询。
  6. 点击保存

查看活跃查询

如需查看活跃查询,请完成以下步骤:

  1. 为查看活跃查询的每位用户添加此角色。

  2. 在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。

    打开“Cloud SQL 实例”

  3. 如需打开实例的概览页面,请点击实例名称。

  4. 执行以下任一操作以显示 Query Insights 信息中心:

    • 选择 Query Insights 标签页。
    • 点击转到 Query Insights,详细了解查询和性能Query Insights 信息中心将会打开。顶部显示了实例的详细信息。
  5. 点击活跃查询标签页。

    在这里,您可以修改运行时间最长的事务表中出现的查询信息:

    • 数据库:过滤特定数据库或所有数据库上的查询负载。
    • 用户:过滤来自特定用户账号的查询负载。

查看规范化活跃查询

您可以在 Query Insights 信息中心内查看包含规范化活跃查询的长时间运行的排名靠前事务列表。规范化活跃查询会移除敏感数据并返回摘要。对于以下示例中使用的不同值,摘要是相同的:

  • 常规查询

    • select * from test_table where id=1;
    • select * from test_table_where id=2;
  • 摘要或规范化查询

    • select * from test_table where id=?;

在不同会话中运行的查询会在信息中心上显示为不同的条目。

查看运行时间最长的排名靠前事务

Query Insights 信息中心内的运行时间最长的事务表包含以下列:

列名 说明
会话 ID 会话的唯一标识符。
查询 SQL 查询文本。
会话状态 会话状态。
查询时长 查询已运行的时长。
等待事件类型 如果请求因查询执行而被屏蔽,则为等待事件的类型。
屏蔽会话 ID 屏蔽会话的会话 ID。
事务等待时长 如果会话被屏蔽,则为当前等待时长。
事务行已修改 此查询返回给客户端的行数。
完成率 如果查询报告进度,则为已完成工作的百分比。
数据库 会话在其中运行的数据库。
应用名称 发起会话的应用的名称。
用户 连接到数据库的用户的名称。
客户端地址 发送查询的客户端的特定 IP 地址。
操作 包含用于终止会话的链接。

显示的内容每 60 秒自动刷新一次。

终止会话

如需终止查询或事务,您必须具有 databaseinsights.operationsAdmin 角色。如需了解详情,请参阅 IAM 基本角色和预定义角色参考文档

如需终止查询或事务,还必须启用 Cloud SQL 企业 Plus 版 Query Insights

长时间运行的操作可能需要更长时间才能终止。

如需终止查询或事务,请完成以下步骤:

  1. 运行时间最长的事务表中,选择一个查询。
  2. 操作列中,点击终止会话
  3. 终止会话窗口中,点击确认

后续步骤