DWS运维实战:行存压缩表整改方案

举报
你是猴子请来的救兵吗 发表于 2025/11/28 15:57:38 2025/11/28
【摘要】 行存压缩表特性已日落,需要进行整改,本文提供了检查方式和整改方案,可按此方案进行整改。

检查方式

业务库执行以下语句

select n.nspname,c.relname from pg_class c,pg_namespace n where c.relnamespace=n.oid and reloptions::text like '%orientation=row%' and reloptions::text  like '%compression=yes%';


整改方案:


{YourSchema.YourTable} 整体替换为你的名字

--1. 提前建表(防止带索引导入,索引先不建)
CREATE TABLE {YourSchema.YourTable}_column ... WITH xxx

--2. 做好授权
SELECT 'GRANT ' || privilege_type || ' ON ' || table_schema || '.' || table_name || '_column TO ' || grantee || ';' 
FROM information_schema.table_privileges
WHERE concat(table_schema,'.',table_name)='{YourSchema.YourTable}';

--3. 临时参数
set lockwait_timeout = 0; --防止等锁超时
set query_dop = 2; --适当开并行
set maintenance_work_mem = 'XXGB'; --如果建索引需要临时调大这个参数

--4. 开始实施
START TRANSACTION;
LOCK TABLE {YourSchema.YourTable} IN EXCLUSIVE MODE; --七级锁防止DML

INSERT INTO {YourSchema.YourTable}_column SELECT * FROM {YourSchema.YourTable};

SELECT COUNT(1) FROM {YourSchema.YourTable}; --手动校验条数是否一致
SELECT COUNT(1) FROM {YourSchema.YourTable}_column;

ALTER TABLE {YourSchema.YourTable} RENAME TO {YourSchema.YourTable}_old;
ALTER TABLE {YourSchema.YourTable}_column RENAME TO {YourSchema.YourTable};

CREATE INDEX ... --建好必要的索引(列存一般不需索引)

ANALYZE {YourSchema.YourTable};
COMMIT;

--5. 全部校验无误后删除 {YourSchema.YourTable}_old;

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。