云数据库 GAUSSDB-快速定位查询存储倾斜的表:场景一:磁盘满后快速定位存储倾斜的表
场景一:磁盘满后快速定位存储倾斜的表
首先,通过pg_stat_get_last_data_changed_time(oid)函数查询出近期发生过数据变更的表,鉴于表的最后修改时间只在进行IUD操作的CN记录,要查询库内1天(间隔可在函数中调整)内被修改的所有表,可以使用如下封装函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
CREATE OR REPLACE FUNCTION get_last_changed_table(OUT schemaname text, OUT relname text) RETURNS setof record AS $$ DECLARE row_data record; row_name record; query_str text; query_str_nodes text; BEGIN query_str_nodes := 'SELECT node_name FROM pgxc_node where node_type = ''C'''; FOR row_name IN EXECUTE(query_str_nodes) LOOP query_str := 'EXECUTE DIRECT ON (' || row_name.node_name || ') ''SELECT b.nspname,a.relname FROM pg_class a INNER JOIN pg_namespace b on a.relnamespace = b.oid where pg_stat_get_last_data_changed_time(a.oid) BETWEEN current_timestamp - 1 AND current_timestamp;'''; FOR row_data IN EXECUTE(query_str) LOOP schemaname = row_data.nspname; relname = row_data.relname; return next; END LOOP; END LOOP; return; END; $$ LANGUAGE 'plpgsql'; |
然后,通过table_distribution(schemaname text, tablename text)查询出表在各个DN占用的存储空间。
1
|
SELECT table_distribution(schemaname,relname) FROM get_last_changed_table(); |
- GaussDB性能怎么调_华为gaussdb_gaussdb性能_gaussdb学习
- GaussDB性能_Gaussdb数据库性能_高斯数据库性能-华为云
- 什么是OCR识别_OCR文字识别免费版_OCR识别常见功能_OCR文字识别工具
- OCR图片文字识别_智能识别文字_繁体字图片识别
- OCR是什么意思_OCR识别_OCR在线
- 数据库监控DMS_数据库智能运维_了解Auto Pilot_DMS_DWS节点监控
- 文件存储与块存储的区别_免费的文件存储_分布式文件存储系统
- 免费文件存储_什么是文件存储_高效的文件存储方式
- 云数据库 RDS 的实例存储类型有哪些
- DWS资源管理_GaussDB(DWS)资源管理作用_DWS资源管控