云数据库 GAUSSDB-数据库对象函数:数据库对象尺寸函数

时间:2024-12-13 17:15:46

数据库对象尺寸函数

数据库对象尺寸函数计算数据库对象使用的实际磁盘空间。

  • pg_column_size(any)

    描述:存储一个指定的数值需要的字节数(可能压缩过)。

    返回值类型:int

    备注:pg_column_size显示用于存储某个独立数据值的空间。

    1
    2
    3
    4
    5
    gaussdb=# SELECT pg_column_size(1);
     pg_column_size 
    ----------------
                  4
    (1 row)
    
  • pg_database_size(oid)

    描述:指定OID代表的数据库使用的磁盘空间。

    返回值类型:bigint

  • pg_database_size(name)

    描述:指定名称的数据库使用的磁盘空间。

    返回值类型:bigint

    备注:pg_database_size接受一个数据库的OID或者名称,然后返回该对象使用的全部磁盘空间。

    示例:

    1
    2
    3
    4
    5
    gaussdb=# SELECT pg_database_size('testdb');
     pg_database_size 
    ------------------
             51590112
    (1 row)
    

    备注:pg_database_size(oid/name)对象函数查询耗时与该oid/name所对应库中的对象文件数目相关,基本呈线性关系,如需进行耗时评估,可参考以下步骤:

    1)由于耗时与软硬件环境有关,因此需要以某个库(注意所选择库的对象文件数目不宜过多)测试结果为基准,根据查询耗时和库中对象文件数目计算出单对象文件所需耗时database_size_t;

    2)使用select oid,* from pg_database where datname = 'database';查询得到需要查询库的oid,在表空间base和pg_tblspc目录下统计该oid目录下的所有对象文件数目database_obj_num,如该oid目录中包含目录,则需要进入查看对象文件数目,依次类推;查询目录下文件数目使用ls | wc -l;

    3)根据基准测试结果中单文件数目耗时database_size_t和database下所有对象文件数目database_obj_num计算预估总耗时,总耗时=database_size_t * database_obj_num,如果时延太长需考虑调整执行超时阈值,避免出现不必要的告警。

  • pg_relation_size(oid)

    描述:指定OID代表的表或者索引所使用的磁盘空间。

    返回值类型:bigint

  • get_db_source_datasize()

    描述:估算当前数据库非压缩态的数据总容量。

    返回值类型:bigint

    备注:调用该函数前需要做analyze。

    示例:

    1
    2
    3
    4
    5
    6
    7
    gaussdb=# analyze;
    ANALYZE
    gaussdb=# SELECT get_db_source_datasize();
     get_db_source_datasize
    ------------------------
                35384925667
    (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用于计算某个独立数据值的空间。

    示例:

    gaussdb=# SELECT datalength(1);
    datalength
    ------------
    4
    (1 row)

    目前支持的数据类型及计算方式见下表:

    数据类型

    存储空间

    数值类型

    整数类型

    TINYINT

    1

    SMALLINT

    2

    INTEGER

    4

    BINARY_INTEGER

    4

    BIGINT

    8

    任意精度型

    DECIMAL

    每4位十进制数占两个字节,小数点前后数字分别计算。

    NUMERIC

    每4位十进制数占两个字节,小数点前后数字分别计算。

    NUMBER

    每4位十进制数占两个字节,小数点前后数字分别计算。

    序列整型

    SMALLSERIAL

    2

    SERIAL

    4

    BIGSERIAL

    8

    LARGESERIAL

    每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

support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0389.html