-- 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;
文章
阅读量
获赞