pg_freespacemap
模块提供了一种方法来检查空闲空间映射(FSM)。它提供了一个称为pg_freespace
的函数,或者准确地说是两个重载的函数。这些函数显示空闲空间映射中为一个给定页面所记录的值,或者显示关系中所有页面的记录值。
默认情况下,使用仅限于超级用户和pg_stat_scan_tables
角色的成员。可以使用GRANT
给其他人授予访问权限。
pg_freespace(rel regclass IN, blkno bigint IN) 返回 int2
根据 FSM,返回由blkno
指定的关系页面上的空闲空间总量。
pg_freespace(rel regclass IN, blkno OUT bigint, avail OUT int2)
根据 FSM,显示关系的每个页面上的空闲空间总量。一个(blkno bigint, avail int2)
元组的集合会被返回,每一个元组对应关系中的一个页面。
存储在空闲空间映射中的值不准确。它们被圆整到BLCKSZ
的 1/256(对于默认的BLCKSZ
是 32 字节),并且在元组被插入和更新时它们不会被实时更新。
对于索引,被跟踪的是整个没有使用的页面,而不是页面中的空闲空间。因此,这些值可能没有意义,只是表示一个页面是满的还是空的。
在版本 8.4 中接口已被更改,以反映在同一个版本中新引入的 FSM 实现。
postgres=# SELECT * FROM pg_freespace('foo');
blkno | avail
-------+-------
0 | 0
1 | 0
2 | 0
3 | 32
4 | 704
5 | 704
6 | 704
7 | 1216
8 | 704
9 | 704
10 | 704
11 | 704
12 | 704
13 | 704
14 | 704
15 | 704
16 | 704
17 | 704
18 | 704
19 | 3648
(20 rows)
postgres=# SELECT * FROM pg_freespace('foo', 7);
pg_freespace
--------------
1216
(1 row)
备案信息: 粤ICP备15087711号-2
Copyright © 2008-2024 啊嘎哇在线工具箱 All Rights.
本站所有资料来源于网络,版权归原作者所有,仅作学习交流使用,如不慎侵犯了您的权利,请联系我们。