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 |