为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:麒麟
【CPU】:ARM
【问题描述】*:我们有一套库,主备的,内存已经90%了,TOP查看mem%大概是75%,通过以下语句查询的大小与mem%差不多,但是我就没法判定我的数据库是分配内存就那么大,是不是够用还是不够用?select
(select sum(n_pages) * page()/1024/1024 from v$bufferpool)||'MB' as BUFFER_SIZE,
(select sum(total_size)/1024/1024 from v$mem_pool)||'MB' as mem_pool,
(select sum(n_pages) * page()/1024/1024 from v$bufferpool)+(select sum(total_size)/1024/1024 from v$mem_pool)||'MB' as TOTAL_SIZE
from dual;
达梦的内存机制属于淘汰机制,您在使用过程中如果优化设置了使用总内存的80%,但内存使用量常在90-95%左右,建议进行内存扩容。
可以使用如下语句,查下BUFFER和MEMORY的实际使用情况
--buffer使用
select name,sum(page_size1.0n_pages)/1024/1024.0 as size_mb,
sum(page_size1.0(n_clear+n_dirty))/1024/1024.0 as used_mb,
sum(page_size1.0free)/1024/1024.0 as free_mb
from v$bufferpool group by cube(name);
--memory使用
select substr(name,1,12),count(*) ,sum(total_size)/1024/1024.0 total_MB,sum(reserved_size)/1024/1024.0 used_MB
from v$mem_pool group by cube(substr(name,1,12))
order by total_MB desc;