达梦会话管理常用语句
按用户杀会话
select ‘sp_close_session(’||SESS_ID||‘);’ from v$sessions where USER_NAME=‘SYSDBA’;
按SESS_ID杀会话
sp_close_session(112167104)
查出连接数
select * from V$CONNECT;
按用户查询执行过的sql
select SQL_TEXT from v$sessions where user_name=‘SYSDBA’;
查出长耗时的语句
select * from V
L
O
N
G
E
X
E
C
S
Q
L
S
o
r
d
e
r
b
y
e
x
e
c
t
i
m
e
d
e
s
c
;
−
−
(
除
以
1000
后
,
秒
)
−
−
V
LONG_EXEC_SQLS order by exec_time desc;--(除以1000后,秒) --V
LONGEXECSQLSorderbyexectimedesc;−−(除以1000后,秒)−−VLONG_EXEC_SQLS或V$SYSTEM_LONG_EXEC_SQLS来确定高负载的SQL语句,前者显示最近1000条执行时间较长的SQL语句"
查看活动会话数
select count(*) from v$sessions where state=‘ACTIVE’;
查询当前会话id
select * from V$SQL_STAT;
查看等待事件
select ss.SESS_ID,tw.*,ss.clnt_ip,ss.SQL_TEXT from V
T
R
X
W
A
I
T
t
w
j
o
i
n
v
TRXWAIT tw join v
TRXWAITtwjoinvsessions ss on ss.trx_id=tw.id;
查看相关锁信息
select * from v$lock;
根据sessionid查出会话历史语句
SELECT SESS_ID,TOP_SQL_TEXT,TIME_USED,START_TIME,HARD_PARSE_FLAG FROM V$SQL_HISTORY where sess_id=‘12124480’;–HARD_PARSE_FLAG 0软解析 2硬解析"
查出锁源头会话信息
select sess_id,sql_text,state,trx_id from v
s
e
s
s
i
o
n
s
w
h
e
r
e
t
r
x
i
d
i
n
(
s
e
l
e
c
t
w
a
i
t
f
o
r
i
d
f
r
o
m
v
sessions where trx_id in(select wait_for_id from v
sessionswheretrxidin(selectwaitforidfromvtrxwait);–会话不一定是这个语句
批量查杀被阻塞会话:
select ‘SP_CLOSE_SESSION(’ ||s.sess_id||‘)’ from v
s
e
s
s
i
o
n
s
s
,
v
sessions s,v
sessionss,vlock l where s.trx_id=l.trx_id and l.blocked=1;
被阻索会话信息
select s.USER_NAME,s.sess_id,s.TRX_ID,s.SQL_TEXT,s.RUN_STATUS from v
s
e
s
s
i
o
n
s
s
,
v
sessions s,v
sessionss,vlock l where s.trx_id=l.trx_id and l.blocked=1;
查询出事务锁的会话源头信息
select s.USER_NAME,s.sess_id,s.TRX_ID,s.SQL_TEXT,s.RUN_STATUS from v
s
e
s
s
i
o
n
s
s
,
v
sessions s,v
sessionss,vlock l where s.trx_id=l.row_idx and l.blocked=1;
查锁表会话
SELECT SESS_ID,TOP_SQL_TEXT,TIME_USED,START_TIME,HARD_PARSE_FLAG FROM V
S
Q
L
H
I
S
T
O
R
Y
w
h
e
r
e
s
e
s
s
i
d
i
n
(
s
e
l
e
c
t
s
e
s
s
i
d
f
r
o
m
v
SQL_HISTORY where sess_id in (select sess_id from v
SQLHISTORYwheresessidin(selectsessidfromvsessions where trx_id in(select wait_for_id from v$trxwait)) and TOP_SQL_TEXT like ‘%t1%’;"
批量查杀源头会话
select ‘SP_CLOSE_SESSION(’ ||s.sess_id||‘)’ from v
s
e
s
s
i
o
n
s
s
,
v
sessions s,v
sessionss,vlock l where s.trx_id=l.row_idx and l.blocked=1;
查看回滚状态、回滚进度
select STATUS 事务状态,INS_CNT 剩余回滚数K为单位,DEL_CNT,UPD_CNT,UPD_INS_CNT, ROLLBACK_FLAG from V$TRX where sess_id=‘4850409792’;"–如果1正在回滚
https://eco.dameng.com