iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >查询oracle正在执行的SQL和事务
  • 190
分享到

查询oracle正在执行的SQL和事务

2024-04-02 19:04:59 190人浏览 独家记忆
摘要

查询oracle正在执行的sql语句及执行该语句的用户: SELECT b.sid oracleID,          b.userna

查询oracle正在执行的sql语句及执行该语句的用户:
SELECT b.sid oracleID,  
       b.username 登录Oracle用户名,  
       b.serial#,  
       spid 操作系统ID,  
       paddr,  
       sql_text 正在执行的SQL,  
       b.Machine 计算机名  
FROM v$process a, v$session b, v$sqlarea c  
WHERE a.addr = b.paddr  
   AND b.sql_hash_value = c.hash_value

查看正在执行sql的发起者的发放程序:
SELECT OSUSER 电脑登录身份,  
       PROGRAM 发起请求的程序,  
       USERNAME 登录系统的用户名,  
       SCHEMANAME,  
       B.Cpu_Time 花费cpu的时间,  
       STATUS,  
       B.SQL_TEXT 执行的sql  
FROM V$SESSION A  
LEFT JOIN V$SQL B ON A.SQL_ADDRESS = B.ADDRESS  
                   AND A.SQL_HASH_VALUE = B.HASH_VALUE  
ORDER BY b.cpu_time DESC

查出oracle当前的被对象:
SELECT l.session_id sid,  
       s.serial#,  
       l.locked_mode 锁模式,  
       l.oracle_username 登录用户,  
       l.os_user_name 登录机器用户名,  
       s.machine 机器名,  
       s.terminal 终端用户名,  
       o.object_name 被锁对象名,  
       s.loGon_time 登录数据库时间  
FROM v$locked_object l, all_objects o, v$session s  
WHERE l.object_id = o.object_id  
   AND l.session_id = s.sid  
ORDER BY sid, s.serial#;

kill掉当前的锁对象:
alter system kill session 'sid, s.serial#‘;

查询当前正在执行的事务:
SELECT s.sid,  
      s.serial#,  
      s.event,  
      a.sql_text,  
      a.sql_fulltext,  
      s.username,  
      s.status,  
      s.machine,  
      s.terminal,  
      s.program,  
      a.executions,  
      s.sql_id,  
      p.spid,  
      a.direct_writes  
 FROM (SELECT * FROM v$session WHERE status = 'ACTIVE') s  
 LEFT JOIN v$sqlarea a  
   ON s.sql_id = a.sql_id  
INNER JOIN v$process p  
   ON s.paddr = p.addr


查看Oracle 数据库中的长事务:
set linesize 200  
set pagesize 5000  
col transaction_duration fORMat a45  
  
with transaction_details as  
( select inst_id  
  , ses_addr  
  , sysdate - start_date as diff  
  from gv$transaction  
)  
select s.username  
, to_char(trunc(t.diff))  
             || ' days, '  
             || to_char(trunc(mod(t.diff * 24,24)))  
             || ' hours, '  
             || to_char(trunc(mod(t.diff * 24 * 60,24)))  
             || ' minutes, '  
             || to_char(trunc(mod(t.diff * 24 * 60 * 60,60)))  
             || ' seconds' as transaction_duration  
, s.program  
, s.terminal  
, s.status  
, s.sid  
, s.serial#  
from gv$session s  
, transaction_details t  
where s.inst_id = t.inst_id  
and s.saddr = t.ses_addr  
order by t.diff desc  
/

查询长事务SQL:
下面SQL 查询数据库中正在执行大于N秒的事务信息:
with ltr as ( 
select to_char(sysdate,'YYYYMMDDHH24MISS') TM, 
       s.sid, 
       s.sql_id, 
       s.sql_child_number, 
       s.prev_sql_id, 
       xid, 
       to_char(t.start_date,'YYYYMMDDHH24MISS') start_time, 
       e.TYPE,e.block, 
       e.ctime, 
       decode(e.CTIME, 0, (sysdate - t.start_date) * 3600*24, e.ctime) el_second  
     --  q.sql_text 
  from v$transaction t, v$session s,v$transaction_enqueue e
 where t.start_date <= sysdate - interval '100' second     
   and t.addr = s.taddr 
   --and s.sql_child_number = q.CHILD_NUMBER(+) 
   --and s.sql_id = q.sql_id(+) and s.prev_sql_id = q.sql_id(+) 
   and t.addr = e.addr(+) )  
  select ltr.* , (select q1.sql_text from v$sql q1 where ltr.prev_sql_id = q1.sql_id(+)
   and rownum = 1) prev_sql_text , 
  (select q1.sql_text from v$sql q1 where ltr.sql_id = q1.sql_id(+) 
   and ltr.sql_child_number = q1.CHILD_NUMBER(+)) sql_text 
   from ltr ltr;

您可能感兴趣的文档:

--结束END--

本文标题: 查询oracle正在执行的SQL和事务

本文链接: https://www.lsjlt.com/news/47209.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • plsql怎么查询正在执行的sql
    在PL/SQL中,可以使用`V$SQL`视图查询正在执行的SQL语句。以下是一个示例查询:```SELECT sql_id,...
    99+
    2023-09-28
    plsql sql
  • 如何查询Oracle正在执行的sql语句及执行该语句的用户
    这篇文章主要介绍了如何查询Oracle正在执行的sql语句及执行该语句的用户,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。--查询Oracl...
    99+
    2024-04-02
  • mysql查询正在执行的进程
    查看mysql进程有两种方法1、进入mysql/bin目录下输入mysqladmin processlist;2、启动mysql,输入show processlist;如果有SUPER权限,则可以看到全部的...
    99+
    2024-04-02
  • Oracle中如何执行SQL查询
    在Oracle中执行SQL查询有多种方式,其中最常见的方式是使用SQL Developer工具或者SQL*Plus命令行工具。以下是...
    99+
    2024-04-09
    Oracle
  • plsql怎么查看正在执行的SQL
    在PL/SQL中,可以通过使用`DBMS_UTILITY.FORMAT_CALL_STACK`和`DBMS_UTILITY.FORM...
    99+
    2023-10-10
    PLSQL SQL
  • Mysql查询正在执行的事务以及等待锁的操作方式
    使用navicat测试学习: 首先使用set autocommit = 0;(取消自动提交,则当执行语句commit或者rollback执行提交事务或者回滚) 在打开一个执行update 查...
    99+
    2024-04-02
  • 怎么查看mysql正在执行的SQL语句
    本篇内容介绍了“怎么查看mysql正在执行的SQL语句”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!&nb...
    99+
    2024-04-02
  • 查询Oracle执行的顺序
    explain plan for select CFG_ID, COUNT(0) total  from ...
    99+
    2024-04-02
  • oracle执行sql查询语句的步骤是什么
    oracle 执行 sql 查询语句的步骤依次为:词法分析语法分析语义分析查询优化查询执行数据检索数据排序和聚合(如有必要)结果集生成 Oracle 执行 SQL 查询语句的步骤 Or...
    99+
    2024-05-13
    oracle 数据格式化 数据排序
  • Oracle中sql语句如何执行日志查询
    目录oracle sql语句执行日志查询Oracle查询某天sql执行记录Oracle sql语句执行日志查询 在Oracle数据中,我们经常编写sql语句,有时我们会编写一些特别长的sql语句,而有一些意外导致sql消...
    99+
    2022-12-06
    Oraclesql语句 sql执行日志查询 Oracle执行sql语句
  • SQL查询语句执行的过程
    目录MySQL基本架构Server 层1、连接器2、查询缓存3、分析器4、优化器5、执行器SQL语句举例: SELECT * FROM `test` WHERE `i...
    99+
    2024-04-02
  • Oracle如何查看impdp正在执行的内容
    1. 今天进行数据库备份恢复 一直卡住  找了一下 公司另外一个部门的方神提供了一个方法连查看 具体在做什么操作: 2. 现象. impdp 到一个地方直接卡住不动 具体位置 view 这个地...
    99+
    2024-04-02
  • 如何在Hive中执行复杂查询和子查询
    在Hive中执行复杂查询和子查询可以通过使用HiveQL语言来实现。HiveQL语言类似于SQL,可以用于编写复杂的查询语句。 以下...
    99+
    2024-03-12
    Hive
  • django执行原生SQL查询的实现
    目录执行原生 SQL 查询1、执行原生查询1.1 普通查询1.2 将查询字段映射为模型字段1.3 索引查询1.4 将参数传给 raw()2、直接执行自定义 SQL2.1 指定连接数据...
    99+
    2024-04-02
  • 如何在Oracle数据库中执行查询
    要在Oracle数据库中执行查询,您可以使用SQL语句。以下是一个简单的示例: SELECT * FROM table_na...
    99+
    2024-04-09
    Oracle
  • MySQL进阶-sql执行时间的查询
    上一节我们介绍了MySQL的索引,MySQL进阶—索引1_兜兜转转m的博客-CSDN博客 用于提高查询效率。那么我们应该优化哪些库的哪些sql呢? 答案1:肯定是查询频繁的数据库和查询执行时间长的sql。现在我们一一来解决这个问题。 首先如...
    99+
    2023-10-26
    mysql 数据库 sql
  • SQL查询的执行顺序是什么
    本篇内容主要讲解“SQL查询的执行顺序是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL查询的执行顺序是什么”吧!很多 SQL 查询都是以 SELEC&...
    99+
    2024-04-02
  • SQL Server查询执行过的SQL记录的方法
    说明:仅支持sql server2008及以上版本 通过下面的SQL语句可以查看Sqlserver执行的SQL记录,常用于SQL优化及辅助查找数据更新相关功能bug。 SELECT TOP 1000 ...
    99+
    2024-01-29
    SQL Server查询执行过的SQL记录 SQL Server查询SQL记录 SQL Server查询SQL SQL Server查询
  • SQL查询的执行顺序是怎样的
    本篇内容介绍了“SQL查询的执行顺序是怎样的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!SQL 查询的执...
    99+
    2024-04-02
  • oracle查询存储过程执行记录在哪
    在 oracle 中查看存储过程执行记录的方法包括:使用 v$sysstat 表查询执行次数和时间戳;使用 v$sql_workarea 表获取当前执行的信息;查看会话日志文件,需打开追...
    99+
    2024-04-19
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作