本页介绍了如何监控数据库中的活跃查询并对这些查询进行问题排查。监控这些查询有助于确定系统延迟时间和 CPU 使用率较高的原因。
在“查询数据分析”信息中心中,您可以查看有效事务的摘要,以及包含关联查询和统计信息的事务列表。事务按事务开始时间进行显示。如果正在运行大量查询,则结果可能仅限于总查询的一部分。
准备工作
创建自定义角色并添加以下权限。然后,向需要使用查询数据分析的每个用户账号授予该角色。
Tasks | 角色 | 权限 |
---|---|---|
查看数据库活动摘要和长时间运行的事务 |
databaseinsights.viewer
|
databaseinsights.activeQueries.fetch databaseinsights.activitySummary.fetch
|
查看实例活动摘要 |
cloudsql.viewer
|
不适用 |
终止会话 |
cloudsql.editor databaseinsights.operationsAdmin
|
不适用 |
启用活跃查询
如需启用有效查询,请完成以下步骤:
-
在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。
- 如需打开实例的概览页面,请点击实例名称。
- 在配置图块中,点击修改配置。
- 展开 Query Insights 窗格。
- 如果启用查询数据分析复选框处于未选中状态,请选中该复选框。 启用查询数据分析后,即可使用“活跃查询”功能。
- 点击保存。
查看活跃查询
如需查看活跃查询,请完成以下步骤:
为查看活跃查询的每位用户添加此角色。
在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。
如需打开实例的概览页面,请点击实例名称。
执行以下任一操作以显示 Query Insights 信息中心:
- 选择 Query Insights 标签页。
- 点击前往“查询数据分析”,详细了解查询和性能。 Query Insights 信息中心将会打开。顶部显示了实例的详细信息。
点击活跃查询标签页。
在这里,您可以修改运行时间最长的交易表中显示的查询信息:
- 数据库:过滤特定数据库或所有数据库上的查询负载。
- 用户:过滤来自特定用户账号的查询负载。
查看规范化活跃查询
您可以在 Query Insights 信息中心查看包含规范化活跃查询的热门长时间运行事务列表。规范化活跃查询会移除敏感数据并返回摘要。以下示例中使用了不同的值,但摘要相同:
常规查询
select * from test_table where id=1;
select * from test_table_where id=2;
摘要或规范化查询
select * from test_table where id=?;
在不同会话中运行的查询会在信息中心显示为不同的条目。
查看运行时间最长的排名靠前事务
查询数据分析信息中心的运行时间最长的事务表格包含以下各列:
列名 | 说明 |
---|---|
会话 ID | 会话的唯一标识符。 |
查询 | SQL 查询文本。 |
会话状态 | 会话状态。 |
查询时长 | 查询已运行的时长。 |
等待事件类型 | 如果请求因查询执行而被阻止,则等待事件的类型。 |
屏蔽会话 ID | 正在阻塞会话的会话的 ID。 |
事务等待时长 | 如果会话被阻塞,则当前等待时长。 |
事务行已修改 | 此查询向客户端返回的行数。 |
完成率 | 已完成的工作百分比(如果查询报告进度)。 |
数据库 | 会话运行的数据库。 |
应用名称 | 发起会话的应用的名称。 |
用户 | 连接到数据库的用户的名称。 |
客户端地址 | 发送查询的客户端的具体 IP 地址。 |
操作 | 包含用于终止会话的链接。 |
显示的内容每 60 秒自动刷新一次。
终止会话
如需终止查询或事务,您必须拥有 databaseinsights.operationsAdmin
角色。如需了解详情,请参阅 IAM 基本角色和预定义角色参考文档。
如需终止查询或事务,还必须启用 Cloud SQL 企业 Plus 版查询分析。
长时间运行的操作可能需要更长时间才能终止。
如需终止查询或事务,请完成以下步骤:
- 在运行时间最长的事务表中,选择一个查询。
- 在操作列中,点击终止会话。
- 在终止会话窗口中,点击确认。