weixin_44058808 2019-12-03 10:00 采纳率: 0%
浏览 263

请大神帮我看看下面两句Oracle sql的区别,本人不太懂oracle,谢谢大家

最近工作中遇到客户提供和自己产品中Oracle 锁进程指标的sql不一样,我对Oracle也不太懂,希望各位大神赐教!

sql 1

// sql 1
SELECT s.username 用户,
       s.machine 终端,
       s.client_info IP,
       s.osuser 终端用户名,
       s.program 进程,
       o.object_type 锁类型,
       o.object_name 被锁对象,
       s.SID || ',' || s.SERIAL# ID,
       'alter system disconnect session ''' || s.SID || ',' || s.SERIAL# ||
       ''' immediate;' 终止进程语句,
       decode(l.type, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) 锁级别,
       o.owner,
       s.terminal,
       a.SQL_TEXT
  FROM v$session s, 
       gv$lock l, 
       dba_objects o, 
       v$sqlarea a
 WHERE l.sid = s.sid
   AND l.id1 = o.object_id(+)
   and l.type = 'TM'
   and s.PREV_SQL_ADDR = a.ADDRESS
   AND s.username is NOT NULL
 order by s.username, s.machine, s.SID || ',' || s.SERIAL#;

sql 2

// sql 2
select s1.INST_ID,
       s1.username||'@'||
       s1.machine||' (SID='||s1.sid||' ) is blocking '||
       s2.username||'@'||
       s2.machine||' ( SID='||s2.sid||' ) ' AS blocking_status 
from 
    gv$lock l1, 
    gv$session s1, 
    gv$lock l2, 
    gv$session s2 
where l1.INST_ID=s1.INST_ID 
      and s1.INST_ID=s2.INST_ID 
      and s2.INST_ID=l2.INST_ID 
      and s1.sid = l1.sid 
      and s2.sid = l2.sid 
      and l1.BLOCK = 1 
      and l2.request > 0 
      and l1.id1 = l2.id1 
      and l2.id2 = l2.id2;
  • 写回答

1条回答 默认 最新

  • 憧憬blog 2023-03-15 04:39
    关注

    这两个SQL查询语句都是用于查询Oracle数据库锁定进程的相关信息,但是它们的查询结果和查询的角度、信息细节都有所不同。

    SQL1查询结果包括当前正在执行的Oracle会话信息、锁类型、锁对象、锁级别等信息,同时还返回了可以用来终止锁进程的SQL语句,具有较为详细的信息。

    SQL2查询结果主要是展示了当前阻塞会话和被阻塞会话之间的关系,比如阻塞会话的用户名、进程终端信息、会话ID以及被阻塞会话的相关信息等,更注重整体阻塞关系的展示。

    因此,两个SQL语句查询出来的结果不一样,可以根据不同的业务需求选择使用。

    评论

报告相同问题?

悬赏问题

  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 spring后端vue前端
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题