1 环境介绍
- 在某些环境数据库内存增长到服务器内存用完,发生OOM事件,可以分析sql会话使用内存大小;
2 查询每个sql会话使用内存大小
-- DROP TABLE T_SQLMEM;
-- 创建SQL会话占用内存记录表
CREATE TABLE IF NOT EXISTS T_SQLMEM AS
--查询每个会话使用内存大小:
SELECT
M.CREATOR ,
S.USER_NAME,
S.SQL_TEXT ,
S.CUR_SQLSTR,
M.NAME MEM_NAME ,
M.TOTAL_SIZE/1024/1024 TOTAL_M,
M.DATA_SIZE /1024/1024 DATA_SIZE_M,
S.STATE,
S.CLNT_IP,
S.CLNT_VER,
S.CLNT_HOST,
S.APPNAME,
S.OSNAME,
S.RUN_STATUS,
S.MSG_STATUS,
S.CREATE_TIME,
S.LAST_RECV_TIME,
S.LAST_SEND_TIME,
DATEDIFF(S, LAST_RECV_TIME, SYSDATE) EXECTIME_S,
SYSDATE() INS_SYSDATE
FROM
V$MEM_POOL M,
V$SESSIONS S
WHERE
M.CREATOR = S.THRD_ID
ORDER BY TOTAL_M DESC;
-- 可以将INSERT 一段SQL 配置到作业,定时监测
INSERT INTO T_SQLMEM SELECT
M.CREATOR ,
S.USER_NAME,
S.SQL_TEXT ,
S.CUR_SQLSTR,
M.NAME MEM_NAME ,
M.TOTAL_SIZE/1024/1024 TOTAL_M,
M.DATA_SIZE /1024/1024 DATA_SIZE_M,
S.STATE,
S.CLNT_IP,
S.CLNT_VER,
S.CLNT_HOST,
S.APPNAME,
S.OSNAME,
S.RUN_STATUS,
S.MSG_STATUS,
S.CREATE_TIME,
S.LAST_RECV_TIME,
S.LAST_SEND_TIME,
DATEDIFF(S, LAST_RECV_TIME, SYSDATE) EXECTIME_S,
SYSDATE() INS_SYSDATE
FROM
V$MEM_POOL M,
V$SESSIONS S
WHERE
M.CREATOR = S.THRD_ID
ORDER BY TOTAL_M DESC;
-- 查询SQL会话占用内存记录表
SELECT * FROM T_SQLMEM ORDER BY TOTAL_M DESC;
3 达梦数据库学习使用列表
达梦数据库学习使用列表 - - 点击跳转