更新时间:2024-11-12 GMT+08:00
分享

DBE_COMPRESSION

接口介绍

根据输入的参数,评估指定数据对象的采样压缩率或者获取指定行数据的压缩类型。

表1 DBE_COMPRESSION

接口名称

描述

GET_COMPRESSION_RATIO

根据输入参数评估指定数据对象的采样压缩率。

GET_COMPRESSION_TYPE

根据输入参数获取指定行数据的压缩类型。

  • DBE_COMPRESSION.GET_COMPRESSION_RATIO

    根据输入参数评估指定数据对象的采样压缩率,原型为:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    DBE_COMPRESSION.GET_COMPRESSION_RATIO(
    SCRATCHTBSNAME IN VARCHAR2,
    OWNNAME        IN VARCHAR2,
    OBJNAME        IN VARCHAR2,
    SUBOBJNAME     IN VARCHAR2,
    COMPTYPE       IN NUMBER,
    BLKCNT_CMP     OUT INTEGER,
    BLKCNT_UNCMP   OUT INTEGER,
    ROW_CMP        OUT INTEGER,
    ROW_UNCMP      OUT INTEGER,
    CMP_RATIO      OUT NUMBER,
    COMPTYPE_STR   OUT VARCHAR2,
    SAMPLE_RATIO   IN NUMBER DEFAULT 20,
    OBJTYPE        IN INTEGER DEFAULT 1);
    
    表2 DBE_COMPRESSION.GET_COMPRESSION_RATIO接口参数说明

    参数

    描述

    SCRATCHTBSNAME

    数据对象所属表空间。

    OWNNAME

    数据对象所有者(所属模式)。

    OBJNAME

    数据对象名称。

    SUBOBJNAME

    数据子对象名称。

    COMPTYPE

    压缩类型,支持:
    • 1:未压缩
    • 2:高级压缩

    BLKCNT_CMP

    样本被压缩后占用的块数。

    BLKCNT_UNCMP

    样本未压缩占用的块数。

    ROW_CMP

    样本被压缩后单个块内可容纳的行数。

    ROW_UNCMP

    样本未被压缩时单个数据块可容纳的行数。

    CMP_RATIO

    压缩比,BLKCNT_UNCMP除以BLKCNT_CMP。

    COMPTYPE_STR

    描述压缩类型的字符串。

    SAMPLE_RATIO

    采样比例,输入为0-100的整数或浮点数,对应为百分之n的采样比例。默认为20,即对20%的行数进行采样。

    OBJTYPE

    对象类型,支持:
    • 1:表对象
  • DBE_COMPRESSION.GET_COMPRESSION_TYPE

    根据输入参数获取指定行数据的压缩类型,该接口属于运维类接口,不做可见性判断,即传入的ctid为已删除的行时,该接口依然会返回当前行在页面上最新的状态。原型为:

    1
    2
    3
    4
    5
    DBE_COMPRESSION.GET_COMPRESSION_TYPE(
    OWNNAME    IN VARCHAR2,
    TABNAME    IN VARCHAR2,
    CTID       IN TEXT,
    SUBOBJNAME IN VARCHAR2 DEFAULT NULL);
    
    表3 DBE_COMPRESSION.GET_COMPRESSION_TYPE接口参数说明

    参数

    描述

    OWNNAME

    数据对象所有者(所属模式)。

    TABNAME

    数据对象名称。

    CTID

    目标行ctid。

    SUBOBJNAME

    数据子对象名称。

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
gaussdb=# alter database set ilm = on;
gaussdb=# CREATE user user1 IDENTIFIED BY 'Gauss_zzy123';
gaussdb=# CREATE user user2 IDENTIFIED BY 'Gauss_zzy123';
gaussdb=# SET ROLE user1 PASSWORD 'Gauss_zzy123';
gaussdb=# CREATE TABLE TEST_DATA (ORDER_ID INT, GOODS_NAME TEXT, CREATE_TIME TIMESTAMP)
  ILM ADD POLICY ROW STORE COMPRESS ADVANCED ROW AFTER 1 DAYS OF NO MODIFICATION;
INSERT INTO TEST_DATA VALUES (1, '零食大礼包A', NOW());

gaussdb=# SELECT DBE_COMPRESSION.GET_COMPRESSION_TYPE('user1', 'test_data', '(0,1)', NULL);
 get_compression_type 
----------------------
                    1
(1 row)

DECLARE
o_blkcnt_cmp      integer;
o_blkcnt_uncmp    integer;
o_row_cmp         integer;
o_row_uncmp       integer;
o_cmp_ratio       number;
o_comptype_str    varchar2;
begin
dbe_compression.get_compression_ratio(
    SCRATCHTBSNAME  =>  NULL,
    OWNNAME         =>  'user1',
    OBJNAME         =>  'test_data',
    SUBOBJNAME      =>  NULL,
    COMPTYPE        =>  2,
    BLKCNT_CMP      =>  o_blkcnt_cmp,
    BLKCNT_UNCMP    =>  o_blkcnt_uncmp,
    ROW_CMP         =>  o_row_cmp,
    ROW_UNCMP       =>  o_row_uncmp,
    CMP_RATIO       =>  o_cmp_ratio,
    COMPTYPE_STR    =>  o_comptype_str,
    SAMPLE_RATIO    =>  100,
    OBJTYPE         =>  1);
RAISE INFO 'Number of blocks used by the compressed sample of the object	    : %', o_blkcnt_cmp;
RAISE INFO 'Number of blocks used by the uncompressed sample of the object	    : %', o_blkcnt_uncmp;
RAISE INFO 'Number of rows in a block in compressed sample of the object	    : %', o_row_cmp;
RAISE INFO 'Number of rows in a block in uncompressed sample of the object	    : %', o_row_uncmp;
RAISE INFO 'Estimated Compression Ratio of Sample                       	    : %', o_cmp_ratio;
RAISE INFO 'Compression Type							                        : %', o_comptype_str;
end;
/
INFO:  Number of blocks used by the compressed sample of the object	    : 0
INFO:  Number of blocks used by the uncompressed sample of the object	    : 0
INFO:  Number of rows in a block in compressed sample of the object	    : 0
INFO:  Number of rows in a block in uncompressed sample of the object	    : 0
INFO:  Estimated Compression Ratio of Sample                       	    : 1
INFO:  Compression Type							                        : Compress Advanced

相关文档