本页面介绍了 AlloyDB for PostgreSQL 中的高级 Query Insights 功能。如需了解如何设置和使用高级 Query Insights 功能,请参阅使用高级 Query Insights 功能提高查询性能。
高级 Query Insights 功能提供查询性能诊断,以及标准 Query Insights 中提供的所有功能。
借助高级 Query Insights 功能,您可以近乎实时地检测、排查和预防数据库和查询性能问题。根据过去 7 天的 Query Insights 数据,您可以监控应用级别的查询性能,并按操作、控制器、框架、路由、应用和数据库驱动程序跟踪应用堆栈中有问题的查询的来源。高级 Query Insights 功能会捕获所有查询的查询计划,并每分钟采样最多 20 个查询计划。
为了帮助您主动识别和排查查询性能问题的根本原因,高级 Query Insights 功能可让您执行以下操作:
- 使用近乎实时的查询统计信息和跨多个维度(例如用户、主机和数据库)的相关分析,来执行临时分析以诊断疑难问题。
- 使用完整的 SQL 语句以及随附的注释查看查询执行计划。您可以选择查看与查询相关的注释(如适用)。
- 通过分析遥测(例如等待事件)来排查复杂的性能问题。等待事件是会导致查询相关操作处理中出现延迟的组件。等待事件指标默认处于启用状态,可帮助您诊断和调试长时间运行的查询及其关联等待时间的性能问题。
- 查看索引顾问建议,了解如何创建索引。
- 配置 Query Insights 设置。例如,您可以自定义查询长度、启用等待事件分析,以及存储查询注释和应用标记。您可以访问历史数据和近乎实时的数据。
- 分析最长 30 天的数据,以便了解长期性能。
高级 Query Insights 功能的好处
以下高级 Query Insights 功能可帮助您检测和解决查询性能问题:
- 预构建的信息中心,可帮助您提早识别查询性能问题,并让您可以在 Google Cloud 控制台的单个页面中识别、诊断和解决问题。
- 直观的查询计划,可帮助您确定根本原因并排查问题。您可以使用上下文中的端到端应用跟踪记录来跟踪有问题的查询的来源。
- 基于 Google Cloud的企业级安全、隐私权和合规产品的分析洞见,这可能会降低运营开销。
- 以应用为中心的监控,以及针对使用对象关系映射器 (ORM) 构建的应用的简化性能诊断。您可以使用业务逻辑标记查询,从而借助以应用为中心的视图来监控数据库性能。Sqlcommenter 是一个开源库,可自动为您的 ORM 进行插桩处理,以帮助识别导致性能问题的应用代码。
高级 Query Insights 功能的工作原理
高级 Query Insights 功能是全托管式功能,这意味着您无需安装或主动管理此功能。
高级 Query Insights 功能会加载一个扩展程序,该扩展程序会记录使用钩子实现的查询指标和执行计划。指标存储在 AlloyDB 表中,而标准化执行计划存储在 Cloud Trace 中。
您可以在 Google Cloud 控制台的 AlloyDB Query Insights 页面中访问这些指标。高级 Query Insights 功能在查询完成后的 30 秒内就可以提供指标。指标会采用与数据库存储相同的方式进行静态加密。
高级 Query Insights 功能仅存储和显示标准化查询。系统会移除查询字符串中的所有常量值。查询注释仅在需要时保留,是一种“选择加入”功能。查询计划跟踪记录不会收集和存储常量值。
存储
高级 Query Insights 功能仅存储和显示标准化查询。系统会移除查询字符串中的所有常量值。查询计划跟踪记录不会收集或存储任何常量值。默认情况下,高级 Query Insights 功能不会收集标记信息。如果在后期阶段启用,则可以通过高级 Query Insights 功能按实例设置进行停用。
Query Insights 信息中心提供四周的数据。存储 7 天的数据所需的存储空间约为 36 GB。高级 Query Insights 功能最多使用 10 MB 的 RAM(共享内存)。Query Insights 在查询完成后的 30 秒内就可以提供指标。此外,Cloud Monitoring 中的系统指标中会提供标准 Query Insights 指标,以保持标准 Query Insights 功能的完整性。如需详细了解 Cloud Monitoring 系统指标保留政策,请参阅数据保留。
高级 Query Insights 功能的跟踪记录存储在 Cloud Trace 中,保留期限为 30 天。如需详细了解 Cloud Trace 数据保留政策,请参阅配额和限制。
限制
- 高级 Query Insights 功能公开的指标无法通过 Cloud Monitoring API 来使用。
- 不支持客户端 IP 地址。
- 您无法在具有次要实例的集群中启用高级 Query Insights 功能。在集群中创建次要实例之前,您必须先在集群中的所有实例上停用高级 Query Insights 功能。
- AlloyDB 会将主实例和读取池实例的 Query Insights 数据存储 30 天。存储主实例的数据需要大约 180 GB 的空间,并且可能会根据集群中存在的读取池节点数量而增加。所用存储空间的大小上限为 700 GB。
- 您必须先在主实例上启用高级 Query Insights 功能,然后才能在读取池实例上启用这些功能。
- 启用高级 Query Insights 功能后,Query Insights 信息中心会重置。不过,您仍然可以使用 Metrics Explorer 界面访问标准 Query Insights 指标。