GaussDB-DBE_COMPRESSION
接口介绍
根据输入的参数,评估指定数据对象的采样压缩率或者获取指定行数据的压缩类型。
| 接口名称 | 描述 |
|---|---|
| GET_COMPRESSION_RATIO | 根据输入参数评估指定数据对象的采样压缩率。 |
| GET_COMPRESSION_TYPE | 根据输入参数获取指定行数据的压缩类型。 |
GET_COMPRESSION_TYPE接口只支持分布式数据库中数据节点(DN),其他节点暂不支持。
-
DBE_COMPRESSION.GET_COMPRESSION_RATIO
| ``` DBE_COMPRESSION.GET_COMPRESSION_RATIO ( scratchtbsname IN TEXT, ownname IN TEXT, objname IN TEXT, subobjname IN TEXT, comptype IN INTEGER, 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);
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 参数 | 描述 | | :------------- | :---------------------------- | | scratchtbsname | 数据对象所属表空间。 | | ownname | 数据对象所有者(所属模式)。 | | objname | 数据对象名称。 | | subobjname | 数据子对象名称。 | | comptype | 压缩类型,支持:- 1:未压缩 - 2:高级压缩。 | | blkcnt_cmp | 采样行行压缩后占页面数。 | | blkcnt_uncmp | 采样行未压缩时占页面数。 | | row_cmp | 单页面容纳压缩行数。 | | row_uncmp | 单页面容纳非压缩行数量。 | | cmp_ratio | 压缩率。 | | comptype_str | 压缩类型字符串。 | | sample_ratio | 采样率。 | | objtype | 对象类型,支持:- 1:表对象。 |
-
DBE_COMPRESSION.GET_COMPRESSION_TYPE
根据输入参数获取指定行数据的压缩类型,该接口属于运维类接口,不做可见性判断,即传入的ctid为已删除的行时,该接口依然会返回当前行在页面上最新的状态,原型为:
| ``` DBE_COMPRESSION.GET_COMPRESSION_TYPE ( ownname IN TEXT, tablename IN TEXT, ctid IN INTEGER, subobjname IN TEXT DEFAULT NULL, comptype OUT INTEGER);
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 参数 | 描述 | | :--------- | :---------------------------- | | ownname | 数据对象所有者(所属模式)。 | | tablename | 数据对象名称。 | | ctid | 目标行ctid。 | | subobjname | 数据子对象名称。 | | comptype | 压缩类型,支持:- 1:未压缩 - 2:高级压缩。 |
示例
| ``` gaussdb=# CREATE DATABASE ilmtabledb WITH dbcompatibility = 'ORA'; gaussdb=# \c ilmtabledb gaussdb=# ALTER DATABASE set ilm = on; gaussdb=# CREATE user user1 IDENTIFIED BY ''; gaussdb=# SET ROLE user1 PASSWORD ''; gaussdb=# CREATE TABLE TEST_DATA (ORDER_ID INT, GOODS_NAME TEXT, CREATE_TIME TIMESTAMP) with (storage_type=astore) ILM ADD POLICY ROW STORE COMPRESS ADVANCED ROW AFTER 1 DAYS OF NO MODIFICATION; NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'order_id' as the distribution column by default. HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column. gaussdb=# INSERT INTO TEST_DATA VALUES (1, '零食大礼包A', NOW()); gaussdb=# 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 gaussdb=# CREATE DATABASE ilmtabledb WITH dbcompatibility = 'ORA'; gaussdb=# \c ilmtabledb gaussdb=# ALTER DATABASE set ilm = on; gaussdb=# CREATE USER user1 IDENTIFIED BY ''; gaussdb=# SET ROLE user1 PASSWORD ''; 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; gaussdb=# 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
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
更多详情请参考GaussDB 文档中心:<https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/productdesc/qlh_03_0001.html>