查詢Oracle正在執行的sql語句及執行該語句的用戶
SELECT B.SID ORACLEID,
B.USERNAME 登錄ORACLE用戶名,
B.SERIAL#,
SPID 操作系統ID,
PADDR,
SQL_TEXT 正在執行的SQL,
B.MACHINE 計算機名
FROM V$PROCESS A, V$SESSION B, V$SQLAREA C
WHERE A.ADDR = B.PADDR
AND B.SQL_HASH_VALUE = C.HASH_VALUE;
--查看正在執行sql的發起者的發放程序
SELECT OSUSER 電腦登錄身份,
PROGRAM 發起請求的程序,
USERNAME 登錄系統的用戶名,
SCHEMANAME,
B.CPU_TIME 花費CPU的時間,
STATUS,
B.SQL_TEXT 執行的SQL
FROM V$SESSION A
LEFT JOIN V$SQL B
ON A.SQL_ADDRESS = B.ADDRESS
AND A.SQL_HASH_VALUE = B.HASH_VALUE
ORDER BY B.CPU_TIME DESC;
--鎖表查詢SQL
SELECT OBJECT_NAME, MACHINE, S.SID, S.SERIAL#
FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S
WHERE L.OBJECT_ID = O.OBJECT_ID
AND L.SESSION_ID = S.SID;
--釋放SESSION SQL:
--alter system kill session 'sid, serial#';
ALTER SYSTEM KILL SESSION '23, 1647';
--查某一用戶下的表大小
SELECT SEGMENT_NAME, TABLESPACE_NAME, SUM(BYTES / 1024 / 1024) || 'M'
FROM USER_EXTENTS
WHERE SEGMENT_TYPE = 'TABLE'
GROUP BY SEGMENT_NAME, TABLESPACE_NAME
ORDER BY 3 DESC;
--查所有的表大小
SELECT SEGMENT_NAME, TABLESPACE_NAME, SUM(BYTES / 1024 / 1024) || 'M'
FROM DBA_EXTENTS
WHERE SEGMENT_TYPE = 'TABLE'
GROUP BY SEGMENT_NAME, TABLESPACE_NAME
ORDER BY 3 DESC;
--oracle查詢歷史執行語句
SELECT *
FROM V$SQLAREA
WHERE /*PARSING_SCHEMA_NAME = 'ORDERS'
AND */SQL_TEXT LIKE '%delete%'
ORDER BY LAST_ACTIVE_TIME