首先,我们需要创建一个函数来查询每个模式中删除的行数。函数代码如下:
CREATE OR REPLACE FUNCTION get_deleted_rows_per_schema() RETURNS TABLE(schema_name text, deleted_rows bigint) AS $$ BEGIN RETURN QUERY SELECT schemaname, sum(n_dead_tup) as deleted_rows FROM pg_stat_user_tables GROUP BY schemaname; END; $$ LANGUAGE plpgsql;
这将返回一个包含模式名称和删除的行数的表格。
为了使用它,只需执行以下命令:
SELECT * FROM get_deleted_rows_per_schema();
这将返回所有模式中删除的行数。
注:在使用此函数之前,请确保已经安装了pgstattuple扩展,以便可以使用pg_stat_user_tables系统视图。 如需安装,可以执行以下命令:
CREATE EXTENSION pgstattuple;
这将在Postgres中安装pgstattuple扩展。