首页 > 数据库 >查询分析清理oracle阻塞会话

查询分析清理oracle阻塞会话

时间:2024-07-03 15:23:10浏览次数:19  
标签:object 阻塞 会话 session sid oracle id ROW

1.查询CMS用户当前系统活动的会话

select
t.SID,t.SERIAL#,t.STATUS,t.LOGON_TIME,t.LAST_CALL_ET,t.PROGRAM,t.LOCKWAIT,
t.BLOCKING_SESSION,t.BLOCKING_SESSION_STATUS,t.BLOCKING_INSTANCE,
t.USERNAME,t.PROCESS,t.OSUSER,t.SERVER,t.OSUSER,
t.MACHINE,t.TERMINAL,t.PROCESS,t.PROGRAM,t.type,t.MODULE_HASH
,t.ROW_WAIT_OBJ#,t.ROW_WAIT_FILE#,t.ROW_WAIT_BLOCK#,t.ROW_WAIT_ROW#,t.EVENT,t.STATE,t.SERVICE_NAME
from v$session t
where
t.USERNAME = 'CMS' and t.STATUS = 'ACTIVE';

2.查询CMS用户所有活动会话的sql语句

select sql_text, st.SQL_ID, st.COMMAND_TYPE
  from v$sqltext st, v$session s
 where (st.sql_id = s.sql_id)
   and s.sid in (select t.SID
                   from v$session t
                  where t.USERNAME = 'CMS'
                    and t.STATUS = 'ACTIVE');

3.查询当前系统的锁住会话及对象

SELECT b.owner,b.object_name,a.session_id,a.locked_mode 
    FROM v$locked_object a ,dba_objects b  
    WHERE b.object_id = a.object_id; 

4.杀死一个会话

alter system kill session 'sid, serial#';

5.如果要一次性杀死多个会话,一个一个填写sid和serial#十分的繁琐,应该在查询被锁对象的同时拼凑出多条的杀会话语句,以分号分隔,一起复制下来,然后就可以批量的执行了。

拼凑kill语句的方式如下,下面加了一个过滤条件和一个排序,杀除真正关心的表,并且着重注意超时时间过长的会话。

SELECT'alter system kill session '''|| c.sid ||''||','|| c.serial# ||''';',
        a.object_id, a.session_id, b.object_name, c.*
   FROM v$locked_object a, dba_objects b, v$session c
  WHERE a.object_id = b.object_id
   AND a.SESSION_ID = c.sid(+)
    AND schemaname ='Unmi'
  ORDER BY logon_time;

标签:object,阻塞,会话,session,sid,oracle,id,ROW
From: https://www.cnblogs.com/hgboy/p/18281679

相关文章

  • IBM服务器SQL/ Oracle数据库修复
    一、故障诊断:1.使用IBM服务器管理工具(如IBMStorageManager)连接到服务器,检查当前存储状态和数据库状态。2.查看错误日志和系统日志,确定数据库损坏的具体原因,如硬盘故障、RAID阵列崩溃、文件系统损坏等。风险评估:1.评估数据库损坏的严重程度和恢复的可能性。2.确定是否有可用......
  • ORACLE数据库数据恢复
    ORACLE数据库常见问题故障:1、ORACLE数据库无法启动或无法正常工作。2、ORACLEASM存储破坏。3、ORACLE数据文件丢失。ORACLE数据库的解决方案1.检测是否存在硬件故障。2.以只读方式对故障存储做完整镜像3.在备份中进行数据分析及恢复操作。4.恢复后的数据会暂存在另一......
  • 1.FineReport连接Oracle数据库
    1.服务器–定义数据连接2.添加JDBC3.配置JDBC4.添加数据库查询5.输入查询语句,预览结果......
  • 如何在Oracle、MySQL、PostgreSQL中改变SQL提示格式
    HowtoChangeinSQLPromptformatinOracle,MySQL,PostgreSQL像UNIX的PS1环境变量可以改变shell操作提示符,在日常工作环境中可以提升一些效率可以防止一些误操作,很多年前在看tom关于在练习oracle操作前的一些环境配置像login.sql,比起”SQL>”还可以显示当前的用......
  • 如何在Oracle、MySQL、Postgresql中查找全表扫描SQL
    HowtofindfulltablescanSQLinOracle,MySQL,Postgresql?Queriesthatdo“fulltablescan”aretheonesthatdon’tuseindexes.However,itismoresuitabletouseafulltablescanforsmalltables,anditwillnotcauseperformanceproblems.Or......
  • 12.阻塞赋值与非阻塞赋值语句的区别和规范
    (1)阻塞赋值“=”  直到现行的赋值语句完成,才允许下一条赋值语句的执行,在串行块(begin-end)中,各赋值语句将以它们在顺序块中的排列次序依次执行。(2)非阻塞赋值“<=”    在赋值开始时,计算赋值号右边的语句,赋值结束时,更新赋值号左边的语句,因此其他在同一时间的语句都会......
  • PART1-Oracle关系数据结构
    2.Oracle关系数据结构2.1.表和表簇2.1.1.模式对象简介数据库模式是数据结构的逻辑容器,这些数据结构称为模式对象。模式对象的例子有表和索引。模式对象是通过SQL创建和操作的。一个数据库用户拥有密码和各种数据库权限。每个用户拥有一个与其同名的模式。模式包含了属于......
  • PART0-Oracle数据库介绍
    1.Oracle数据库介绍1.1.关于关系型的数据库每个组织都有必须存储和管理的信息,以满足其需求。例如,公司必须收集和维护员工的人力资源记录。这些信息必须对需要它的人可用。信息系统是一个用于存储和处理信息的正式系统。信息系统可以是一组包含文件夹的纸箱,以及存储和检索文件......
  • Oracle 上机
    --1.(3分)查找每个部门的最高工资员工编号及其下属信息。selecte2.empno,e1.*fromempe1join(select*fromempwhere(deptno,sal)in(selectdeptno,max(sal)fromempgroupbydeptno))e2one1.mgr=e2.empno;/*2.(5分)有成绩表如下(使用with子查询):准考证号科......
  • 了解 .NET 中的会话管理
    在Web开发领域,跨多个请求维护状态是一个关键方面。HTTP的无状态特性要求开发人员实现持久保存用户数据的机制。这就是会话发挥作用的地方。在本文中,我们将探讨什么是会话、它们在.NET中的工作方式,并提供实际示例来说明它们的用法。什么是会话?会话是服务器端的信息存......