查看session相关信息以及相关操作
1、查询用户相关的session的ID和session的序列号,这里没有显示系统用户的,因为系统用户在V$SESSION的表里面的
USERNAME为空,只可以通过关联ALL_USERS表,通过user#和user_id相关联。
SELECTUSERNAME ||'('|| SID ||','|| SERIAL# ||')'USERNAME,
MODULE,
ACTION,
CLIENT_INFO
FROMV$SESSION
WHEREMODULE ||ACTION|| CLIENT_INFOISNOTNULL;
SELECT USERNAME || '(' || SID || ',' || SERIAL# || ')' USERNAME,
MODULE,
ACTION,
CLIENT_INFO
FROM V$SESSION
WHERE MODULE || ACTION || CLIENT_INFO IS NOT NULL;
--关联用户表,查询出用户的名字。
SELECTAU.USERNAME, V.ACTION, V.SID
FROMV$SESSION V
LEFTJOINALL_USERS AUONAU.USER_ID = V.USER#
ORDERBYAU.USERNAME;
SELECT AU.USERNAME, V.ACTION, V.SID
FROM V$SESSION V
LEFT JOIN ALL_USERS AU ON AU.USER_ID = V.USER#
ORDER BY AU.USERNAME;
2、查询session视图中的SQL_ID对应的SQL语句:
SELECTVS.SQL_TEXT
FROMV$SESSION V
LEFTJOINV$SQL VSONV.SQL_ID = VS.SQL_ID
SELECT VS.SQL_TEXT
FROM V$SESSION V
LEFT JOIN V$SQL VS ON V.SQL_ID = VS.SQL_ID
3、查询当前的锁模式:
当前的用户为空,代表为系统用户,要显示系统用户的名字,可以通过v$session中的user#与all_users的user_id相关联,来显示用户名字:
SELECTSESSION_ID"SID",
LOCK_TYPE"Lock Type",
MODE_HELD"Mode Held",
BLOCKING_OTHERS"Blocking?",
V.USERNAME,--为空,代表为系统用户
V.MACHINE,
V.ACTION
FROMDBA_LOCKS DL
LEFTJOINV$SESSION VONV.SID = DL.SESSION_ID
SELECT SESSION_ID "SID",
LOCK_TYPE "Lock Type",
MODE_HELD "Mode Held",
BLOCKING_OTHERS "Blocking?",
V.USERNAME, --为空,代表为系统用户
V.MACHINE,
V.ACTION
FROM DBA_LOCKS DL
LEFT JOIN V$SESSION V ON V.SID = DL.SESSION_ID
4、查询出相应的统计资料:包括登录次数,回滚次数,提交次数等等:
SELECTNAME, VALUEFROMV$SYSSTAT
SELECT NAME, VALUE FROM V$SYSSTAT