PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 附录 F. 额外提供的模块 | 下一页

# F.30. pgstattuple

`pgstattuple`模块提供各种函数以获得元组级别的状态。

## F.30.1. 函数

`pgstattuple(regclass) returns record`

  `pgstattuple`返回一个关系的实际长度，"死的" 元组的百分比，和其他信息。这帮助用户确定是否需要vacuum。 该参数是目标关系的名字（可以有模式限定）或OID。例如：

      test=> SELECT * FROM pgstattuple('pg_catalog.pg_proc');
      -[ RECORD 1 ]------+-------
      table_len          | 458752
      tuple_count        | 1470
      tuple_len          | 438896
      tuple_percent      | 95.67
      dead_tuple_count   | 11
      dead_tuple_len     | 3157
      dead_tuple_percent | 0.69
      free_space         | 8932
      free_percent       | 1.95

  输出字段在表 F-21中描述。

  表 F-21. `pgstattuple` 输出字段

  字段 | 类型 | 描述
  --- | --- | ---
  `table_len` | `bigint` | 实际关系长度以字节计
  `tuple_count` | `bigint` | 活的元组的数量
  `tuple_len` | `bigint` | 活的元组的总长度，以字节计
  `tuple_percent` | `float8` | 活的元组的百分比
  `dead_tuple_count` | `bigint` | 死的元组的数量
  `dead_tuple_len` | `bigint` | 死的元组的总长度，以字节计
  `dead_tuple_percent` | `float8` | 死的元组的百分比
  `free_space` | `bigint` | 总的空闲空间，以字节计
  `free_percent` | `float8` | 空闲空间的百分比

  `pgstattuple`只获取关系中的读锁。所以结果并不反映一个瞬间的快照； 并发的更新将影响它们。

  如果`HeapTupleSatisfiesDirty`返回假，那么`pgstattuple` 判断一个元组是否是"死的"。

`pgstattuple(text) returns record`

  这和`pgstattuple(regclass)`一样，除了目标关系是通过TEXT指定之外。 保留这个函数是为了向后兼容，在未来的版本中会被废除。

`pgstatindex(regclass) returns record`

  `pgstatindex`返回一个显示关于B-tree索引信息的记录。例如：

      test=> SELECT * FROM pgstatindex('pg_cast_oid_index');
      -[ RECORD 1 ]------+------
      version            | 2
      tree_level         | 0
      index_size         | 8192
      root_block_no      | 1
      internal_pages     | 0
      leaf_pages         | 1
      empty_pages        | 0
      deleted_pages      | 0
      avg_leaf_density   | 50.27
      leaf_fragmentation | 0

  输出字段是：

  字段 | 类型 | 描述
  --- | --- | ---
  `version` | `integer` | B-tree 版本号
  `tree_level` | `integer` | 根页面的树级别
  `index_size` | `bigint` | 索引中页面的总数量
  `root_block_no` | `bigint` | 根块的位置
  `internal_pages` | `bigint` | "internal" (上一级) 页面的数量
  `leaf_pages` | `bigint` | 叶子页面的数量
  `empty_pages` | `bigint` | 空白页面的数量
  `deleted_pages` | `bigint` | 已删除页面的数量
  `avg_leaf_density` | `float8` | 叶子页面的平均密度
  `leaf_fragmentation` | `float8` | 叶子页面碎片

  与`pgstattuple`一样，结果是一页一页的累积的， 不应该期望代表整个索引的一个瞬间快照。

`pgstatindex(text) returns record`

  这和`pgstatindex(regclass)`相同，除了目标索引是通过TEXT指定的。 保留这个函数是为了向后兼容，在未来的版本中将会废弃。

`pgstatginindex(regclass) returns record`

  `pgstatginindex`返回一个显示关于GIN索引信息的记录。例如：

      test=> SELECT * FROM pgstatginindex('test_gin_index');
      -[ RECORD 1 ]--+--
      version        | 1
      pending_pages  | 0
      pending_tuples | 0

  输出字段是：

  字段 | 类型 | 描述
  --- | --- | ---
  `version` | `integer` | GIN 版本号
  `pending_pages` | `integer` | 等待列表中页面的数量
  `pending_tuples` | `bigint` | 等待列表中元组的数量

`pg_relpages(regclass) returns bigint`

  `pg_relpages`返回关系中页面的数量。

`pg_relpages(text) returns bigint`

  这和`pgstatindex(regclass)`相同，除了目标关系是通过TEXT指定的。 保留这个函数是为了向后兼容，在未来的版本中将会废弃。

## F.30.2. 作者

Tatsuo Ishii 和 Satoshi Nagayasu

上一页 | 起始页 | 下一页
pg_stat_statements | 上一级 | pg_trgm