更新时间:2026-08-06 GMT+08:00
手动调度
以下为手动创建和压缩透明压缩表的测试步骤,过程中的表可替换为自己的表数据进行测试,注意提前做好备份。
- 设置必要的实例级ILM开关和透明压缩特性的开关。
[@gshost116 ~]$ gs_guc reload -Z datanode -I all -N all -c "enable_ilm=on" [@gshost116 ~]$ gs_guc reload -Z datanode -I all -N all -c "turbo_compress_shared_buffers=1GB"
- 打开数据库级别的开关。
gaussdb=# ALTER DATABASE set ilm =on; ALTER DATABASE
- 创建压缩表,这里需要使用透明压缩的语法创建压缩表,插入数据,查看大小。
gaussdb=# DROP TABLE if exists test; NOTICE: table "test" does not exist, skipping DROP TABLE gaussdb=# CREATE TABLE test(a int, b int) with (storage_type=astore) ILM ADD POLICY ROW STORE COMPRESS TURBO high UNIT AFTER 3 HOUR OF NO MODIFICATION; CREATE TABLE gaussdb=# INSERT INTO test values(generate_series(1,200000), generate_series(1,200000)); INSERT 0 200000 gaussdb=# checkpoint; CHECKPOINT gaussdb=# SELECT pg_relation_size('test') as size; size --------- 7340032 (1 row) - 在合适的时机执行异步压缩动作,查看大小和压缩率。
gaussdb=# CALL dbe_ilm.execute_ilm('public','test',v_taskid,NULL,'ALL POLICIES',2, true); task_id --------- 2 (1 row) gaussdb=# SELECT pg_relation_size('test') as size; size -------- 815104 (1 row) gaussdb=# CALL dbe_compression.get_actual_compression_ratio('public', 'test', a,b,c,d,e,f); filepath | is_compress | file_count | logic_size | physic_size | compress_ratio ------------------+-------------+------------+------------+-------------+---------------- base/13160/32768 | t | 2 | 7380992 | 937984 | 7.8690 (1 row)如上所示压缩率是7.8,明显会降低存储空间。