--查看某个时间段内历史会话连接数信息
SELECT * FROM dba_users WHERE username=''; --得到USER_ID
SELECT TO_CHAR(SAMPLE_TIME, 'yyyy-mm-dd hh24'), COUNT(*)
FROM DBA_HIST_ACTIVE_SESS_HISTORY
WHERE USER_ID = 59 AND
sample_time>=SYSDATE-1
GROUP BY TO_CHAR(SAMPLE_TIME, 'yyyy-mm-dd hh24')
HAVING COUNT(*)>=1
ORDER BY 1;
--查看历史会话中等待事件为enq: TX - row lock contention的sql和执行次数
SELECT D.SQL_ID, COUNT(1)
FROM DBA_HIST_ACTIVE_SESS_HISTORY D
WHERE D.SAMPLE_TIME BETWEEN
TO_DATE('2020-10-16 11:30:00', 'YYYY-MM-DD HH24:MI:SS')
AND
TO_DATE('2020-10-16 12:30:00', 'YYYY-MM-DD HH24:MI:SS')
AND D.EVENT = 'enq: TX - row lock contention'
GROUP BY D.SQL_ID;
--查询某一时间的快照信息
SELECT *
FROM DBA_HIST_SNAPSHOT
WHERE BEGIN_INTERVAL_TIME >=
TO_DATE('2020-10-16 11:30:00', 'YYYY-MM-DD HH24:MI:SS')
AND BEGIN_INTERVAL_TIME <
TO_DATE('2020-10-16 12:30:00', 'YYYY-MM-DD HH24:MI:SS');
--查看某一快照时间内sql执行计划是全表扫描的信息
SELECT SQL_ID, COUNT(1)
FROM DBA_HIST_ACTIVE_SESS_HISTORY
WHERE SNAP_ID IN (147873, 147874)
AND SQL_PLAN_OPERATION = 'TABLE ACCESS'
AND SQL_PLAN_OPTIONS = 'FULL'
AND SESSION_TYPE = 'FOREGROUND'
GROUP BY SQL_ID;
--通过得到的sql_id,找到对应的sql
SELECT *
FROM V$SQL
WHERE SQL_ID IN ('5d83cb75qvj5d',
'954zfk4kdfg6a',
'da90pycpdy62b',
'01bn98uy78r58',
'dh40yv9x8qgy0')
SELECT SQL_ID,
USER_ID,
SQL_OPNAME,
SQL_PLAN_LINE_ID,
SQL_PLAN_OPERATION,
SQL_PLAN_OPTIONS,
EVENT,
PROGRAM
FROM DBA_HIST_ACTIVE_SESS_HISTORY
WHERE SNAP_ID IN (147877, 147878)
AND SESSION_TYPE = 'FOREGROUND'
AND SQL_ID = 'da90pycpdy62b'
--查看慢查询sql
SELECT A.USERNAME,
A.SQL_ID,
A.SQL_PLAN_OPERATION,
A.SQL_PLAN_OPTIONS,
A.ELAPSED_SECONDS,
COUNT(1)
FROM V$SESSION_LONGOPS A, V$SQL B
WHERE A.START_TIME >= TRUNC(SYSDATE) - 10/24/60
AND A.SQL_ID = B.SQL_ID
AND A.USERNAME NOT IN ('SYS', 'SYSTEM')
GROUP BY A.USERNAME,
A.SQL_ID,
A.SQL_PLAN_OPERATION,
A.SQL_PLAN_OPTIONS,
A.ELAPSED_SECONDS;
--查看表空间使用率
SELECT * FROM (
SELECT D.TABLESPACE_NAME,
SPACE || 'M' "SUM_SPACE(M)",
BLOCKS "SUM_BLOCKS",
SPACE - NVL (FREE_SPACE, 0) || 'M' "USED_SPACE(M)",
ROUND ( (1 - NVL (FREE_SPACE, 0) / SPACE) * 100, 2) || '%'
"USED_RATE(%)",
FREE_SPACE || 'M' "FREE_SPACE(M)"
FROM ( SELECT TABLESPACE_NAME,
ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE,
SUM (BLOCKS) BLOCKS
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) D,
( SELECT TABLESPACE_NAME,
ROUND (SUM (BYTES) / (1024 * 1024), 2) FREE_SPACE
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
UNION ALL
SELECT D.TABLESPACE_NAME,
SPACE || 'M' "SUM_SPACE(M)",
BLOCKS SUM_BLOCKS,
USED_SPACE || 'M' "USED_SPACE(M)",
ROUND (NVL (USED_SPACE, 0) / SPACE * 100, 2) || '%' "USED_RATE(%)",
NVL (FREE_SPACE, 0) || 'M' "FREE_SPACE(M)"
FROM ( SELECT TABLESPACE_NAME,
ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE,
SUM (BLOCKS) BLOCKS
FROM DBA_TEMP_FILES
GROUP BY TABLESPACE_NAME) D,
( SELECT TABLESPACE_NAME,
ROUND (SUM (BYTES_USED) / (1024 * 1024), 2) USED_SPACE,
ROUND (SUM (BYTES_FREE) / (1024 * 1024), 2) FREE_SPACE
FROM V$TEMP_SPACE_HEADER
GROUP BY TABLESPACE_NAME) F
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
ORDER BY 1)
WHERE TABLESPACE_NAME IN ('SYSAUX','SYSTEM');