内省工具概览

Spanner 的内省工具可让您调查数据库的问题。它们由一组内置表组成,您可以通过查询这些表更深入地了解查询、事务、读取等。不确定针对特定问题使用哪个工具?以下列表总结了每种工具及其可以帮助解答的问题类型。

查询统计信息

调查数据库中的问题时,可帮您了解哪些查询费用高、运行频繁或可扫描大量数据。

查询统计信息是按 1、10 和 60 分钟间隔收集的查询(包括 DML 语句和变更流查询)的汇总统计信息。系统会收集已成功完成的语句以及失败、超时或被用户取消的语句的统计信息。

统计信息包括最高 CPU 使用率、总查询执行计数、平均延迟时间、扫描最多的数据以及其他基本查询统计信息。使用这些统计信息可帮助确定费用较高的查询、频繁运行的查询或数据密集型查询。

您可以使用查询数据分析信息中心按时序直观呈现这些指标。这些预建的信息中心可帮助您查看 CPU 利用率峰值并识别低效查询。

最早的活跃查询

有时,您希望通过检查正在运行的查询来查看系统中当前的工作负载。使用最早的活跃查询工具来调查可能对数据库性能有影响的长时间运行的查询。此工具会告诉您查询是什么、何时开始运行查询以及它们属于哪个会话。

变更数据流查询不包含在最早的活跃查询中。

读取统计信息

读取统计信息可用于通过 Spanner Reads API 调查数据库中最常见、最耗资源的读取。这些统计信息以 3 个不同的时间间隔(每分钟、10 分钟和一小时)收集并存储。对于每个时间间隔,Spanner 都会跟踪使用最多资源的读取。

使用读取统计信息可找出所有读取的总资源使用率,找出使用 CPU 最多的读取,以及找出特定读取随时间推移的频率变化。

事务统计信息

事务统计信息可用于调查事务相关问题。例如,您可以检查是否存在可能会导致争用的运行缓慢的事务,也可以识别导致性能下降的事务形状变化。每行包含 1、10 和 60 分钟间隔内对数据库执行的所有事务的统计信息。

您可以使用事务数据分析信息中心按时序直观呈现这些指标。预建的信息中心可帮助您查看事务中的延迟时间并识别有问题的事务。

锁统计信息

锁定统计信息可用于调查数据库中的锁定冲突。与交易统计信息一起使用时,您可以尝试获取同一时间相同单元格中的锁,从而找出导致锁定冲突的事务。

您可以使用锁定数据分析信息中心来按时序直观呈现这些指标。预构建的信息中心可帮助您查看锁定等待时间,并确认延迟时间是否是由锁定等待时间较长的锁争用所致。

每个工具中包含的 API 方法

在 Spanner 中,事务读取查询之间存在一些重叠。因此,您可能不清楚在编译每个内省工具的结果时包含的 API 方法。下表列出了主要的 API 方法及其与每个工具的关系。

API 方法 事务模式 查询统计信息 最早的活跃查询 读取统计信息 事务统计信息 锁定统计信息
Read、StreamingRead 只读事务1
读写事务
ExecuteSql、ExecuteStreamingSql 只读事务1 2 2
读写事务
ExecuteBatchDml 读写事务 3 4
提交 读写事务(DML5、变更6

备注:

1 只读事务不会包含在事务统计信息或锁定统计信息中。只有读写事务包含在交易统计信息和锁定统计信息中。

2 使用 PartitionQuery API 运行的查询不包含在查询统计信息或最早的活跃查询中。

3 一批 DML 语句在查询统计信息中显示为单个条目。

4 一批中的语句将出现在最早的活跃查询中,而非整批查询中。

5 事务统计信息中不包含未提交的 DML 操作。

6 实际上是空操作的空变更不会包含在事务统计信息中。

表大小统计信息

您可以使用表大小统计信息来监控数据库中表和索引的历史大小。

使用表大小统计信息找出表、索引和变更数据流表的大小趋势。您还可以跟踪最大的表和索引。

请注意,此功能仅提供历史视角。并非用于实时监控。

表操作统计信息

您可以使用表操作统计信息执行以下操作:

  • 监控数据库中表和索引的使用情况。
  • 查找表和索引的使用趋势。
  • 发现流量的变化。

此外,您还可以将表存储空间的变化与写入流量的变化相关联。