监控活跃查询

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

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

准备工作

如需监控活跃查询,您可以使用 Cloud SQL 企业版或 Cloud SQL 企业 Plus 版。

如需终止活跃查询中的会话或长时间运行的事务,您必须为 Cloud SQL for PostgreSQL 实例使用 Cloud SQL 企业 Plus 版。

如需详细了解 Cloud SQL 版本,请参阅 Cloud SQL 版本简介

所需的角色和权限

如需获得查看活跃查询所需的权限,请让您的管理员为您授予托管 Cloud SQL 实例的项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

这些预定义角色包含查看有效查询所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需查看活跃查询,您需要具备以下权限:

  • 查看数据库活动摘要和长时间运行的事务:
    • databaseinsights.activeQueries.fetch
    • databaseinsights.activitySummary.fetch

您也可以使用自定义角色或其他预定义角色来获取这些权限。

启用活跃查询

如需为 Cloud SQL 企业版实例启用活跃查询,请执行以下操作:

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

    转到“Cloud SQL 实例”

  2. 如需打开实例的概览页面,请点击实例名称。
  3. 配置图块中,点击修改配置
  4. 自定义实例部分中,展开 Query Insights
  5. 确保已启用查询数据分析
  6. 选择活跃查询分析
  7. 点击保存

如需为 Cloud SQL 企业 Plus 版实例启用活跃查询,请执行以下操作:

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

    转到“Cloud SQL 实例”

  2. 如需打开实例的概览页面,请点击实例名称。
  3. 配置图块中,点击修改配置
  4. 自定义实例部分中,展开 Query Insights
  5. 确保已启用查询数据分析
  6. 选择启用企业 Plus 版功能
  7. 选择活跃查询分析
  8. 点击保存

如需终止活跃查询中的会话或长时间运行的事务,您必须使用 Cloud SQL 企业 Plus 版 Query Insights。

停用活跃查询

如需在 Cloud SQL 企业版或 Cloud SQL 企业 Plus 版实例上停用活跃查询,请执行以下操作:

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

    转到“Cloud SQL 实例”

  2. 如需打开实例的概览页面,请点击实例名称。
  3. 配置图块中,点击修改配置
  4. 自定义实例部分中,展开 Query Insights
  5. 清除活跃查询分析复选框。
  6. 点击保存

查看活跃查询

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

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

    转到“Cloud SQL 实例”

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

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

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

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

    • 数据库:过滤特定数据库或所有数据库上的查询负载。
    • 用户:过滤来自特定用户账号的查询负载。
    • 所有活跃查询的摘要统计信息摘要:通过基于以下参数显示总连接数,来提供所有活跃查询的概览:

      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 秒自动刷新一次。

终止进程

如需终止活跃查询中的进程或长时间运行的事务,您必须使用 Cloud SQL 企业 Plus 版,并同时启用活跃查询分析Cloud SQL 企业 Plus 版 Query Insights

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

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

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

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

后续步骤