内省工具概览

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

查询统计信息

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

查询统计信息是针对查询的汇总统计信息 (包括 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 实际上无操作空变更不包含在事务统计信息中。

表大小统计信息

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

使用表大小统计信息查找表、索引 和更改流表您还可以 表和索引。

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

表操作统计信息

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

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

此外,您还可以将表存储中的更改与 写入流量