注册
达梦8内存使用情况
技术分享/ 文章详情 /

达梦8内存使用情况

Solreal 2025/04/03 42 0 0

1 内存使用总量查询

  • 内存池 , 数据缓冲池 , 总量
SELECT (SELECT SUM(TOTAL_SIZE)/1024.0/1024.0 FROM V$MEM_POOL)||'MB' AS MEMPOOL_SIZE ,(SELECT SUM(N_PAGES)*(SELECT SF_GET_PAGE_SIZE())/1024.0/1024.0 FROM V$BUFFERPOOL)||'MB' AS BUFFER_SIZE ,(SELECT (SELECT SUM(TOTAL_SIZE)/1024.0/1024.0 FROM V$MEM_POOL) + (SELECT SUM(N_PAGES)*(SELECT SF_GET_PAGE_SIZE())/1024.0/1024.0 FROM V$BUFFERPOOL))||'MB' AS TOTAL_SIZE;

2 判断内存池 空闲或紧张

SELECT NAME, --内存池名称 IS_SHARED, --是否是共享的 IS_OVERFLOW, --是否用到了备份池 ORG_SIZE/1024.0/1024.0, --内存池初始大小 TOTAL_SIZE/1024.0/1024.0, --内存池总大小(包括扩展的) RESERVED_SIZE/1024.0/1024.0, --当前已分配大小(包括扩展的) DATA_SIZE/1024.0/1024.0, --实际有效字节 EXTEND_SIZE, --每次扩展多少 TARGET_SIZE, --目标大小 N_EXTEND_NORMAL , --TARGET 范围内累计扩展次数 N_EXTEND_EXCLUSIVE --超过 TARGET 累计扩展次数 ,S.SQL_TEXT FROM V$MEM_POOL M LEFT JOIN V$SESSIONS S ON M.CREATOR=S.THRD_ID ORDER BY TOTAL_SIZE DESC; /* 注意: 1、N_EXTEND_EXCLUSIVE 如果长期大于 0,说明长期从池外扩展,可能存在内存泄露。需要重点关注。 2、用到备份池的话,需要保持高度关注,此时系统非常危险。 3、内存池创建的线程号 CREATOR 可以与 SESSION 的 THRD_ID 关联,查看对应的某个会话的内存使用情况。 4、如果 RESERVED_SIZE 比 ORG_SIZE 小,说明内存池非常空闲,需要把对于的初始内存放小,否则浪费。 */

3 判断数据缓冲区BUFFER 空闲还是紧张

SELECT NAME, --缓冲区名称 N_PAGES, --页数 FREE, --空闲页数目 N_DISCARD64 --淘汰的页数 FROM V$BUFFERPOOL /* 注意重点: 1、如果 FREE 很多说明该缓冲区很空闲,可以适当的调整降低 BUFFER 缓冲区参数值。 2、如果 FREE 项为 0,或者 N_DISCARD64 非零,表示该缓冲区经常淘汰。 这种情况,就说明对应的缓冲区参数太小,导致频繁淘汰,需要调整对应的缓冲区的参数。 */

4 占用内存较高的sql

SELECT MAX_MEM_USED/1024.0||'MB' AS MEM,DDL_SQL_CNT,DEL_SQL_CNT,INS_SQL_CNT,SEL_SQL_CNT,UPD_SQL_CNT ,IO_WAIT_TIME,* FROM V$SQL_STAT ORDER BY MAX_MEM_USED DESC;
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服