You need to enable JavaScript to run this app.
导航
空间分析管理
最近更新时间:2024.09.27 14:48:55首次发布时间:2024.07.08 20:20:35

数据库工作台 DBW 提供空间分析功能,通过该功能您可以直观的查看某个实例的空间使用情况,例如表空间分析。

注意事项

  • 最多可展示 2000 条表空间数据。

  • 数据基于系统数据库 pg_stat_user_tables 进行统计。

前提条件

已创建云数据库 PostgreSQL 版实例。详细操作,请参见创建实例

操作步骤

  1. 登录 DBW 控制台

  2. 在顶部菜单栏,选择项目和地域。

  3. 在左侧导航栏,选择运维管理 > 观测诊断,单击空间分析

    观测诊断页面右上角切换实例类型为云数据库 PostgreSQL 版

  4. 空间分析页签左上角,切换目标实例。

    说明

    • 您也可以通过实例 ID 搜索切换至目标实例。

    • 当您通过左侧导航栏的观测诊断进入空间分析页签时,默认展示实例列表中第一个实例的相关信息。

  5. 空间分析页签,您可以查看以下信息:

    • 空间概况:在空间概况区域,您可以查看到当前实例的已用空间空间使用情况空间可用天数

      • 已用空间:包括已用空间和实例的总空间大小。

      • 空间使用情况:显示包括数据日志剩余空间的大小。

      • 空间可用天数:这是根据当前使用情况预测得出的结果,具体情况需根据实际确定。

    • 表空间:在表空间区域,您可以查看某个数据库内实例的表名、表所属的数据库名、表的模式名表空间表空间占比、表的索引空间、表的行长度、表的索引访问次数全表扫描次数最近回收时间最近分析时间膨胀率索引空间大小。部分参数描述如下所示:

      参数说明
      表空间表示数据库表的大小,包括表的所有主数据和索引文件,但不包括 toast 数据和相关索引。通过函数 pg_relation_size 计算获取。
      表空间占比单个表空间大小占所有表空间之和的百分比(仅用户数据),通过 TableSpace / sum(TableSpace) 计算获取。
      索引空间表示数据库中指定表的所有索引使用的磁盘空间大小,通过函数 pg_indexes_size 计算获取。
      行长度表示表中存在的行数,取自 pg_stat_user_tables 表中的 n_live_tup 字段。

      索引访问次数

      表示表中索引被扫描的次数,取自 pg_stat_user_tables 中的 idx_scan 字段。

      说明

      • 如果索引访问次数很高,表示该索引被频繁使用,您需要定期地维护和优化该索引。

      • 如果索引访问次数很低,表示该索引未被充分使用,那么您可以评估是否需要该索引,或需要调整查询以更好地使用索引。

      全表扫描次数

      表示在特定表上发生顺序扫描的次数,取自 pg_stat_user_tables 中的 seq_scan 字段。

      说明

      如果全表扫描次数较高时,可能表示 PostgreSQL 正在为这个表执行较多的顺序扫描。对于大型表来说,顺序扫描可能会很慢,您可以按需为常用的查询字段创建索引或优化查询,从而减少顺序扫描的发生,提高查询效率。

      最近回收时间

      表示最后一次对特定表执行 VACUUM 操作的时间,取自 pg_stat_user_tables 中的 last_vacuum 字段。在 PostgreSQL 中 VACUUM 操作的用途主要有以下用途:

      • 清理表中因为删除和更新操作产生的过时的行数据(即死元组),释放这些空间供将来使用。

      • 更新表的统计信息,使得 PostgreSQL 的查询优化器可以更有效地生成查询计划。

      说明

      如果您的表处于高更新或删除中,您可能需要定期执行 VACUUM 操作。last_vacuum 给您提供了上一次执行 VACUUM 的精确时间,便于您跟踪其执行情况并做出相应的调整。

      最近分析时间

      表示特定表最后一次进行 ANALYZE 操作的时间,取自 pg_stat_user_tables 中的 last_analyze 字段。
      ANALYZE 操作可以收集表和表中列的统计信息,并将这些信息存储在系统目录中。PostgreSQL 的查询优化器可以通过该统计信息帮助决定多种查询执行计划中的最优选择,例如当查询需要从多个表中获取信息时,决定以哪种顺序来获取会最高效。

      说明

      如果 last_analyze 的时间戳比较旧,则表示该统计信息可能已经不再反映表的当前状态。在这种情况下,您需要运行 ANALYZE 操作来更新统计信息。

      膨胀率

      表示死元组(已删除和已更新的行)占总元组(所有行)的百分比,取自 pg_stat_user_tables 中的 round(n_dead_tup * 100 / (n_live_tup + n_dead_tup + 1),2) 字段。

      说明

      如果膨胀率较大,您可以执行 VACUUM 清理死元组回收存储空间,提升数据库性能。

      列索引空间大小表示索引的占用空间,通过函数 pg_total_relation_size 计算获取。