达梦数据库会话锁处理

达梦数据库会话锁处理

1、查找锁
select s.user_name,s.clnt_ip,s.sql_text,s.sess_id from v l o c k l , v lock l,v lockl,vsessions s where l.trx_id=s.trx_id;
2、踢出单条锁语句
SP_CLOSE_SESSION(SESSION_ID)
3、踢出所有数据库连接
1)方式一:
begin
for rec in (SELECT SESS_ID FROM V$SESSIONS WHERE SESS_ID !=SESSID)
loop
sp_close_session(rec.sess_id);
END LOOP;
sp_close_session(SESSID);
end
/
2)方式二:
select ‘sp_close_session(’||sess_id||’); ’ from v$sessions;
4、排除死锁和阻塞:
–查询视图
select count(*) from v$sessions where state=‘ACTIVE’;
select
sysdate ,
SF_GET_SESSION_SQL(SESS_ID), --获取完整sql
sess_id ,
sess_seq ,
sql_text ,
state ,
seq_no ,
user_name ,
trx_id ,
create_time ,
clnt_ip
from v$sessions
where state=‘ACTIVE’;
–锁查询
select o.name, l.*
from v$lock l, sysobjects o
where l.table_id=o.id and blocked =1;
with locks as
( select o.name ,
l.* ,
s.sess_id ,
s.sql_text,
s.clnt_ip
from
v$lock l ,
sysobjects o,
v$sessions s
where
l.table_id=o.id and l.trx_id =s.trx_id
)
,
lock_tr as
(
select trx_id wt_trid, row_idx blk_trid from locks where blocked=1
)
,
res as
(
select
sysdate stattime ,
t1.name ,
t1.sess_id wt_sessid ,
s.wt_trid ,
t1.sql_text wt_sql ,
t2.sess_id blk_sessid,
s.blk_trid ,
t2.clnt_ip
from
lock_tr s,
locks t1 ,
locks t2
where
t1.ltype =‘OBJECT’
and t1.table_id<>0
and t2.ltype =‘OBJECT’
and t2.table_id<>0
and s.wt_trid =t1.trx_id
and s.blk_trid =t2.trx_id
)
select * from res;
–已执行未提交的sql
select
t1.sql_text,
t1.state ,
t1.trx_id
from
v s e s s i o n s t 1 , v sessions t1, v sessionst1,vtrx t2
where
t1.trx_id=t2.id
and t1.state =‘IDLE’
and t2.status=‘ACTIVE’;
–查询有事务未提交的表
select b.object_name, c.sess_id , a.* from
v$lock a ,
dba_objects b,
v$sessions c
where
a.table_id=b.object_id
and ltype =‘OBJECT’
and a.trx_id =c.trx_id;
–查询长时间的sql
select * from
(
SELECT
sess_id ,
sql_text ,
datediff(ss, last_send_time, sysdate) ss,
SF_GET_SESSION_SQL(SESS_ID) fullsql
FROM
V$SESSIONS
WHERE
STATE=‘ACTIVE’
)
where ss>=2;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
达梦数据库常⽤系统视图及查询语句 ⼀、常⽤的系统视图: dba_objects:显⽰数据库中所有的对象,例如想查询数据库中有没有某个对象 v$sessions:显⽰会话的具体信息,如执⾏的 sql 语句、主库名、当前会话状态、⽤户名等等 v$lock:查看当前数据库的信息 v$mem_pool:显⽰所有的内存池信息 V$deadlock_histor::记录死的历史信息 V$TABLESPACE:显⽰表空间信息,不包括回滚表空间信息 V$TRX:显⽰所有活动事务的信息。通过该视图可以查看所有系统中所有的事务以及相关信息,如信息等。 ⼆、常⽤查询语句 1、查询数据库在线实例信息 select distinct NAME, HOST_NAME, SVR_VERSION, DB_VERSION, START_TIME, STATUS$, MODE$ from V$INSTANCE; 2、查看数据库常⽤参数值 select PARA_NAME,PARA_VALUE FROM V$DM_INI WHERE PARA_NAME IN('MEMORY_POOL','BUFFER','PORT_NUM','MAX_SESSIONS','MAX_SESS ION_STATEMENT','INSTANCE_NAME','BAK_PATH','SYSTEM_PATH','ARCH_INI'); 3、查询数据库初始化配置 select SF_GET_PAGE_SIZE() page_size, SF_GET_EXTENT_SIZE() extent_size, SF_GET_UNICODE_FLAG() unicode_flag, SF_GET_CASE_SENSITIVE _FLAG() case_sensitive_flag, SF_GET_SYSTEM_PATH() system_path; 4、查询数据库名称、数据库总⼤⼩、数据库是否启⽤归档 select NAME,STATUS$,ARCH_MODE, TOTAL_SIZE from SYS.V$DATABASE; 5、查询数据库连续运⾏时间 select (SYSDATE-START_TIME)*24 FROM V$INSTANCE; 6、查询数据库管理⽤户状态,默认表空间,是否存在被定 select D.USERNAME,A.CREATED,D.ACCOUNT_STATUS,D.DEFAULT_TABLESPACE,D.EXPIRY_DATE,D.LOCK_DATE FROM DBA_USERS D,ALL_USE RS A; 7、查询当前数据库的⽇志分组情况 select GROUP_ID,FILE_ID,PATH,CLIENT_PATH,RLOG_SIZE FROM SYS.V$RLOGFILE; 8、查询表空间信息 select T.NAME 表空间名称, D.PATH 表空⽂件路径, T.TYPE$ 表空间类型, T.STATUS$ 表空间状态, T. FILE_NUM 包含的⽂件数, D.TOTAL_SIZE*16/1024 总⼤⼩, D.FREE_SIZE*16/1024 空闲⼤⼩, TRUNC((TRUNC(D.TOTAL_SIZE-D.FREE_SIZE, 4)/D.TOTAL_SIZE)*100, 2) 使⽤率 FROM V$TABLESPACE T, V$DATAFILE D WHERE "GROUP_ID"=T.ID; 9、查询数据表所分配的空间⼤⼩,辅助查询表⽤户使⽤情况 select OWNER,TABLESPACE_NAME,SEGMENT_TYPE,SEGMENT_NAME,BLOCKS,BYTES/1024/1024 FROM DBA_SEGMENTS ORDER BY OWNER,SE GMENT_NAME; 10、查询表索引状态,便于确认表索引是否可⽤ select I.TABLE_OWNER,I.TABLE_NAME,O.OBJECT_NAME,O.OBJECT_TYPE,O.STATUS FROM USER_INDEXES I,USER_OBJECTS O WHERE O.OBJE CT_NAME=I.INDEX_NAME AND O.STATUS='INVALID'; 11、查询数据库归档信息 select ARCH_TYPE,ARCH_DEST FROM V$DM_ARCH_INI; select ARCH_NAME, ARCH_TYPE, ARCH_DEST, ARCH_FILE_SIZE, ARCH_SPACE_LIMIT, ARCH_TIMER_NAME, ARCH_IS_VALID from SYS.V$DM_AR CH_IN

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值