文档首页> 数据仓库服务 GaussDB(DWS)> 故障排除> 数据库使用> 如何判断表是否做过update或delete操作
更新时间:2024-05-07 GMT+08:00
分享

如何判断表是否做过update或delete操作

问题现象

DWS中有两种情况需要关注表是否做过update及delete操作:

  1. 对表频繁做update或者delete操作会产生大量的磁盘页面碎片,从而逐渐降低查询的效率,需要将磁盘页面碎片恢复并交换操作系统,即vacuum full操作,这时候需要找出那些表做过update;
  2. 判断一张表是否是维度表,是否可以从Hash表变更为复制表,可以查看这张表是否做过update或delete,如果做过update或delete操作,则不可以修改为复制表。

处理方法

可以通过以下命令找出哪些表做过update及delete操作:

1
2
3
4
5
6
7
8
9
ANALYZE tablename;
SELECT  
    n.nspname , c.relname, 
    pg_stat_get_tuples_deleted(x.pcrelid) as deleted,
pg_stat_get_tuples_updated(x.pcrelid) as updated
FROM pg_class c
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
INNER JOIN pgxc_class x ON x.pcrelid = c.oid
WHERE c.relkind = 'r' and c.relname='tablename' ;
分享:

    相关文档

    相关产品