数据库对象函数
数据库对象尺寸函数
数据库对象尺寸函数计算数据库对象使用的实际磁盘空间。
- pg_column_size(any)
描述:存储一个指定的数值需要的字节数(可能压缩过)。
返回值类型:int
备注:pg_column_size显示用于存储某个独立数据值的空间。
1. openGauss=# SELECT pg_column_size(1);
2. pg_column_size
3. ----------------
4. 4
5. (1 row)
- pg_database_size(oid)
描述:指定OID代表的数据库使用的磁盘空间。
返回值类型:bigint - pg_database_size(name)
描述:指定名称的数据库使用的磁盘空间。
返回值类型:bigint
备注:pg_database_size接受一个数据库的OID或者名称,然后返回该对象使用的全部磁盘空间。
示例:
1. openGauss=# SELECT pg_database_size('postgres');
2. pg_database_size
3. ------------------
4. 51590112
5. (1 row)
- pg_relation_size(oid)
描述:指定OID代表的表或者索引所使用的磁盘空间。
返回值类型:bigint - get_db_source_datasize()
描述:估算当前数据库非压缩态的数据总容量。
返回值类型:bigint
备注:(1)调用该函数前需要做analyze;(2)通过估算列存的压缩率计算非压缩态的数据总容量。
示例:
1. openGauss=# analyze;
2. ANALYZE
3. openGauss=# select get_db_source_datasize();
4. get_db_source_datasize
5. ------------------------
6. 35384925667
7. (1 row)
- pg_relation_size(text)
描述:指定名称的表或者索引使用的磁盘空间。表名称可以用模式名修饰。
返回值类型:bigint - pg_relation_size(relation regclass, fork text)
描述:指定表或索引的指定分叉树(’main’,’fsm’或’vm’)使用的磁盘空间。
返回值类型:bigint - pg_relation_size(relation regclass)
描述:pg_relation_size(…, ‘main’)的简写。
返回值类型:bigint
备注:pg_relation_size接受一个表、索引、压缩表的OID或者名称,然后返回它们的字节大小。 - pg_partition_size(oid,oid)
描述:指定OID代表的分区使用的磁盘空间。其中,第一个oid为表的OID,第二个oid为分区的OID。
返回值类型:bigint - pg_partition_size(text, text)
描述:指定名称的分区使用的磁盘空间。其中,第一个text为表名,第二个text为分区名。
返回值类型:bigint - pg_partition_indexes_size(oid,oid)
描述:指定OID代表的分区的索引使用的磁盘空间。其中,第一个oid为表的OID,第二个oid为分区的OID。
返回值类型:bigint - pg_partition_indexes_size(text,text)
描述:指定名称的分区的索引使用的磁盘空间。其中,第一个text为表名,第二个text为分区名。
返回值类型:bigint - pg_indexes_size(regclass)
描述:附加到指定表的索引使用的总磁盘空间。
返回值类型:bigint - pg_size_pretty(bigint)
描述:将以64位整数表示的字节值转换为具有单位的易读格式。
返回值类型:text - pg_size_pretty(numeric)
描述:将以数值表示的字节值转换为具有单位的易读格式。
返回值类型:text
备注:pg_size_pretty用于把其他函数的结果格式化成一种易读的格式,可以根据情况使用KB 、MB 、GB 、TB。 - pg_table_size(regclass)
描述:指定的表使用的磁盘空间,不计索引(但是包含TOAST,自由空间映射和可见性映射)。
返回值类型:bigint - pg_tablespace_size(oid)
描述:指定OID代表的表空间使用的磁盘空间。
返回值类型:bigint - pg_tablespace_size(name)
描述:指定名称的表空间使用的磁盘空间。
返回值类型:bigint
备注:
pg_tablespace_size接受一个数据库的OID或者名称,然后返回该对象使用的全部磁盘空间。 - pg_total_relation_size(oid)
描述:指定OID代表的表使用的磁盘空间,包括索引和压缩数据。
返回值类型:bigint - pg_total_relation_size(regclass)
描述:指定的表使用的总磁盘空间,包括所有的索引和TOAST数据。
返回值类型:bigint - pg_total_relation_size(text)
描述:指定名称的表所使用的全部磁盘空间,包括索引和压缩数据。表名称可以用模式名修饰。
返回值类型:bigint
备注:pg_total_relation_size接受一个表或者一个压缩表的OID或者名称,然后返回以字节计的数据和所有相关的索引和压缩表的尺寸。 - datalength(any)
描述:计算一个指定的数据需要的字节数(不考虑数据的管理空间和数据压缩、数据类型转换等情况)。
返回值类型:int
备注:datalength用于计算某个独立数据值的空间。
示例:
1. openGauss=# SELECT datalength(1);
2. datalength
3. ------------
4. 4
5. (1 row)
目前支持的数据类型及计算方式见下表:
| 数据类型 | 存储空间 | ||
| 数值类型 | 整数类型 | TINYINT | 1 |
| SMALLINT | 2 | ||
| INTEGER | 4 | ||
| BINARY_INTEGER | 4 | ||
| BIGINT | 8 | ||
| 任意精度型 | DECIMAL | 每4位十进制数占两个字节,小数点前后数字分别计算 | |
| NUMERIC | 每4位十进制数占两个字节,小数点前后数字分别计算 | ||
| NUMBER | 每4位十进制数占两个字节,小数点前后数字分别计算 | ||
| 序列整型 | SMALLSERIAL | 2 | |
| SERIAL | 4 | ||
| LARGESERIAL | 8 | ||
| BIGSERIAL | 每4位十进制数占两个字节,小数点前后数字分别计算 | ||
| 浮点类型 | FLOAT4 | 4 | |
| DOUBLE PRECISION | 8 | ||
| FLOAT8 | 8 | ||
| BINARY_DOUBLE | 8 | ||
| FLOAT[(p)] | 每4位十进制数占两个字节,小数点前后数字分别计算 | ||
| DEC[(p[,s])] | 每4位十进制数占两个字节,小数点前后数字分别计算 | ||
| INTEGER[(p[,s])] | 每4位十进制数占两个字节,小数点前后数字分别计算 | ||
| 布尔类型 | 布尔类型 | BOOLEAN | 1 |
| 字符类型 | 字符类型 | CHAR | n |
| CHAR(n) | n | ||
| CHARACTER(n) | n | ||
| NCHAR(n) | n | ||
| VARCHAR(n) | n | ||
| CHARACTER | 字符实际字节数 | ||
| VARYING(n) | 字符实际字节数 | ||
| VARCHAR2(n) | 字符实际字节数 | ||
| NVARCHAR(n) | 字符实 际字节数 | ||
| NVARCHAR2(n) | 字符实际字节数 | ||
| TEXT | 字符实际字节数 | ||
| CLOB | 字符实际字节数 | ||
| 时间类型 | 时间类型 | DATE | 8 |
| TIME | 8 | ||
| TIMEZ | 12 | ||
| TIMESTAMP | 8 | ||
| TIMESTAMPZ | 8 | ||
| SMALLDATETIME | 8 | ||
| INTERVAL DAY TO SECOND | 16 | ||
| INTERVAL | 16 | ||
| RELTIME | 4 | ||
| ABSTIME | 4 | ||
| TINTERVAL | 12 |
## 数据库对象位置函数
-
pg_relation_filenode(relation regclass)
描述:指定关系的文件节点数。
返回值类型:oid
备注:pg_relation_filenode接受一个表、索引、序列或压缩表的OID或者名称,并且返回当前分配给它的“filenode”数。文件节点是关系使用的文件名称的基本组件。对大多数表来说,结果和pg_class.relfilenode相同,但对确定的系统目录来说,relfilenode为0而且这个函数必须用来获取正确的值。如果传递一个没有存储的关系,比如一个视图,那么这个函数返回NULL。 - pg_relation_filepath(relation regclass)
描述:指定关系的文件路径名。
返回值类型:text
备注:pg_relation_filepath类似于pg_relation_filenode,但是它返回关系的整个文件路径名(相对于openGauss的数据目录PGDATA)。 - pg_filenode_relation(tablespace oid, filenode oid)
描述:获取对应的tablespace和relfilenode所对应的表名。
返回类型:regclass - pg_partition_filenode(partition_oid)
描述:获取到指定分区表的oid锁对应的filenode。
返回类型:oid - pg_partition_filepath(partition_oid)
描述:指定分区的文件路径名。
返回值类型:text
## 回收站对象函数
-
gs_is_recycle_object(classid, objid, objname)
描述:判断是否为回收站对象。
返回值类型:bool
