运行在RHEL7 PostgreSQL版本12上的系统有28G内存和12G共享内存,DB使用的共享内存超过6T在磁盘上某些行大约有3亿行。他们的查询类似于: CREATE TEMPORARY TABLE AS COUNT(t.id) AS count,在V12上,共享内存使用量增长缓慢,大约15分钟后开始加速,增长到大约12G,然后
最近,我创建了一些函数,在postgres中遇到了“共享内存不足”警告。我试图增加max_locks_per_transaction,但它仍然发生。据我从这篇文章(“PostgreSQL抱怨共享内存,但共享内存似乎没问题”)中的答案所了解,创建和删除临时表会创建锁,这可能导致前面提到的警告。例如:
create or replace function remove_vertices(par_geom geometry
当我执行我的函数时,我会得到错误:共享内存不足,没有表被删除。CREATE OR REPLACE FUNCTION utils.drop_webstat_from_schema(schema_name character varying_%' sql := 'DROP TABLE IF EXISTS ' || s.table_s