高级查询数据分析功能概览

本页介绍了 AlloyDB for PostgreSQL 中的高级查询数据分析功能。如需了解如何设置和使用高级查询数据分析功能,请参阅使用高级查询数据分析功能提升查询性能

高级查询数据分析功能提供查询性能诊断功能,以及标准查询数据分析中提供的所有功能。

借助高级查询数据分析功能,您可以近乎实时地检测、排查和预防数据库和查询性能问题。根据过去七天的查询数据分析数据,您可以监控应用级层的查询性能,并按操作、控制器、框架、路由、应用和数据库驱动程序跟踪应用堆栈中有问题的查询的来源。高级查询分析功能会捕获所有查询的查询计划,并且每分钟最多采样 200 个查询计划。

为了帮助您主动识别和排查查询性能问题的根本原因,高级查询分析功能可让您执行以下操作:

  • 执行临时分析,利用用户、主机和数据库等多个维度的近实时查询统计信息和相关性分析来诊断棘手问题。
  • 查看使用完整 SQL 语句以及随附注释的查询执行计划。您可以选择查看与查询相关的评论(如果适用)。
  • 通过分析遥测数据(例如等待事件)排查复杂的性能问题。等待事件是指导致处理与查询相关的操作出现延迟的组件。等待事件指标(默认处于启用状态)可帮助您诊断和调试长时间运行的查询及其相关等待时间的性能问题。
  • 查看有关创建索引的索引顾问建议
  • 配置 Query Insights 设置。例如,您可以自定义查询长度、启用等待事件分析,以及存储查询注释和应用代码。您可以访问历史数据和近乎实时的数据。
  • 分析最长 30 天的数据,以便获得长期效果视图。

高级查询数据分析功能的好处

以下高级查询数据分析功能可帮助您检测和修复查询性能问题:

  • 预构建的信息中心可帮助您提早发现查询性能问题,并让您在 Google Cloud 控制台上的单个页面中发现、诊断和解决问题。
  • 直观查询计划,可帮助您找出根本原因并排查问题。您可以使用上下文中的端到端应用跟踪来跟踪有问题的查询的来源。
  • 基于 Google Cloud的企业安全、隐私保护和合规性产品和服务的数据洞见,这些数据洞见可能会降低运营开销。
  • 针对使用对象关系映射器 (ORM) 构建的应用提供以应用为中心的监控和简化的性能诊断。您可以使用业务逻辑标记查询,从以应用为中心的视图监控数据库性能。Sqlcommenter 是一个开源库,可自动对 ORM 进行插桩,以帮助您找出导致性能问题的应用代码。

高级查询数据分析功能的运作方式

高级查询分析功能是完全托管的,这意味着您无需安装或主动管理该功能。

高级查询数据分析功能会加载一个扩展程序,用于记录使用钩子实现的查询指标和执行计划。指标存储在 AlloyDB 表中,而标准化执行计划存储在 Cloud Trace 中。

您可以在 Google Cloud 控制台的 AlloyDB Query Insights 页面中访问这些指标。增强型查询数据分析功能在查询完成后的 30 秒内就可以提供指标。指标在静态状态下会采用与数据库存储相同的方式进行加密。

高级查询数据分析功能仅存储和显示标准化查询。系统会移除查询字符串中的所有常量值。只有在需要时才会保留查询注释,这项功能需要用户自行选择启用。查询计划跟踪记录不会收集和存储常量值。

存储

高级查询数据分析功能仅存储和显示标准化查询。系统会移除查询字符串中的所有常量值。查询计划跟踪记录不会收集和存储任何常量值。默认情况下,高级查询数据分析功能不会收集标记信息。如果您在后续阶段启用了这些功能,则可以通过“高级查询数据分析”功能的“按实例设置”来停用它们。

查询数据分析信息中心提供四周的数据。7 天的数据存储空间要求约为 36GB。高级查询数据分析功能最多会使用 10 MB 的 RAM(共享内存)。查询数据分析功能在查询完成后的 30 秒内就可以提供指标。此外,Cloud Monitoring 的系统指标中提供了标准查询数据分析指标,以便保持标准查询数据分析功能的完整性。如需详细了解 Cloud Monitoring 系统指标保留政策,请参阅数据保留

高级查询数据分析功能生成的轨迹存储在 Cloud Trace 中,保留期限为 30 天。如需详细了解 Cloud Trace 数据保留政策,请参阅配额和限制

限制

  • 高级 Query Insights 功能提供的指标无法通过 Cloud Monitoring API 获取。
  • 不支持客户端 IP 地址。
  • 您无法在支持跨区域副本的实例上启用高级 Query Insights 功能。如果已启用高级查询分析功能,则在创建次要集群之前,您必须先在主集群的所有实例上停用高级查询分析功能。
  • AlloyDB 会将主实例和读取池实例的查询数据洞见存储 30 天。存储主实例的数据会占用约 180 GB 的空间,并且可能会因集群中存在的读取池节点数量而增加。使用的存储空间大小上限为 700 GB。
  • 您必须先在主实例上启用高级查询分析功能,然后才能在读取池实例上启用这些功能。

后续步骤