监控活跃查询

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

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

准备工作

如需查看活跃查询,您必须执行以下操作:

  1. 设置 Gemini in Databases
  2. 创建自定义角色并添加以下权限:
    任务 角色 权限
    查看建议 databaseinsights.viewer databaseinsights.activeQueries.fetch
    databaseinsights.activitySummary.fetch
    终止建议 databaseinsights.operationsAdmin

查看活跃查询

如需查看活跃查询,请执行以下操作:

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

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

    打开“Cloud SQL 实例”

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

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

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

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

    • 数据库:过滤特定数据库或所有数据库上的查询负载。
    • 用户:过滤来自特定用户账号的查询负载。
    • 所有活跃查询的摘要统计信息摘要:通过基于以下参数显示总连接数,来提供所有活跃查询的概览:
      1. 按连接状态分类的活跃连接分布。
      2. 基于事务状态的活跃事务分布。
      3. 查询时长的分布。
    • 运行时间最长的事务:按执行时间降序提供前 50 个正在运行的查询(处于活跃状态和事务中空闲状态)的概览。您可以在表中对活跃查询进行过滤和排序。

查看规范化活跃查询

您可以在 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 连接或线程 ID 的唯一标识符。
查询 SQL 查询文本。
状态 连接的状态。
会话时长 上个会话运行的时长。
事务时长 活跃事务运行的时长。
查询时长 该事务中上个查询运行的时长。
等待事件类型 发生的等待事件的类型。
等待事件 发生的等待事件。
数据库 运行此连接的数据库名称。
应用名称 运行此连接的应用名称。
用户名 连接到数据库的用户的名称。
客户端地址 发送查询的客户端的特定 IP 地址。
操作 包含用于终止事务的链接。

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

终止进程

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

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

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

如果系统成功终止查询或事务,则会显示一条成功消息。系统还会根据需要执行回滚。