`
langzhiwang888
  • 浏览: 182146 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

ORACLE 查询数据库锁相关的语句

 
阅读更多

--查询那些用户,操纵了那些表造成了锁机 
SELECT s.username,
       decode(l.type, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) LOCK_LEVEL,
       o.owner,
       o.object_name,
       o.object_type,
       s.sid,
       s.serial#,
       s.terminal,
       s.machine,
       s.program,
       s.osuser
FROM v$session s, v$lock l, all_objects o
WHERE l.sid = s.sid
   AND l.id1 = o.object_id(+)
   AND s.username is NOT Null;

--查出被锁的表,和锁住这个表的会话ID 
select a.session_id, b.*
from v$locked_object a, all_objects b
where a.object_id = b.object_id;

--查出对应的SQL语句 
select vs.SQL_TEXT,
       vsess.sid,
       vsess.SERIAL#,
       vsess.MACHINE,
       vsess.OSUSER,
       vsess.TERMINAL,
       vsess.PROGRAM,
       vs.CPU_TIME,
       vs.DISK_READS
from v$sql vs, v$session vsess
where vs.ADDRESS = vsess.SQL_ADDRESS
   and vsess.sid = (1033);

五、

1.查哪个过程被锁 

查V$DB_OBJECT_CACHE视图: 

SELECT * FROM V$DB_OBJECT_CACHE WHERE OWNER='过程的所属用户' AND LOCKS!='0'; 


2. 查是哪一个SID,通过SID可知道是哪个SESSION. 

查V$ACCESS视图: 

SELECT * FROM V$ACCESS WHERE OWNER='过程的所属用户' AND NAME='刚才查到的过程名'; 


3. 查出SID和SERIAL# 

查V$SESSION视图: 

SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='刚才查到的SID' 


查V$PROCESS视图: 

SELECT SPID FROM V$PROCESS WHERE ADDR='刚才查到的PADDR'; 


4. 杀进程 

(1).先杀ORACLE进程: 

ALTER SYSTEM KILL SESSION '查出的SID,查出的SERIAL#'; 


(2).再杀操作系统进程: 

KILL -9 刚才查出的SPID 

或 

ORAKILL 刚才查出的SID 刚才查出的SPID

六、查找最耗费系统资源的SQL 
--CPU 
select b.sql_text, 
a.buffer_gets, 
a.executions, 
a.buffer_gets/decode(a.executions , 0 , 1 , a.executions), 
c.username 
from V$sqlarea a, 
v$sqltext_with_newlines b, 
dba_users c 
where a.parsing_user_id = c.user_id 
and a.address = b.address 
order by a.buffer_gets desc , b.piece 


--IO 
select b.sql_text, 
a.disk_reads, 
a.executions, 
a.disk_reads/decode(a.executions , 0 , 1 , a.executions), 
c.username 
from v$sqlarea a, 
v$sqltext_with_newlines b, 
dba_users c 
where a.parsing_user_id = c.user_id 
and a.address = b.address 
order by a.disk_reads desc , b.piece 



select s.sid,s.value "CPU Used" 
from v$sesstat s,v$statname n 
where s.statistic#=n.statistic# and n.name='CPU used by this session' 
and s.value>0 
order by 2 desc;  

分享到:
评论

相关推荐

    oracle数据库查询语句大全

    Oracle数据库查询语句大全是一篇关于Oracle数据库的查询语句总结的文章,文章包含了各种查询语句,包括查询表名、查询用户、查询数据库参数、查询实例名、查询数据库域名、查询服务名、显示当前用户、直接登陆、查询...

    自动生成oracle数据库表分析语句

    ### 自动生成Oracle数据库表分析语句 在Oracle数据库管理中,定期进行表分析对于优化查询性能至关重要。通过分析表和索引,Oracle可以更新统计信息,这些信息将被查询优化器用于选择最佳的执行计划。本文将详细介绍...

    Oracle数据库死锁查询语句

    了解如何查询和解决Oracle数据库中的死锁对于数据库管理员来说至关重要。 首先,我们要明白死锁的四个必要条件: 1. **互斥**:资源不能同时被多个事务占用。 2. **请求与保持**:事务已经占有至少一个资源,但又...

    oracle数据库锁使用

    总之,Oracle数据库锁的使用是数据库管理中的重要一环,理解并合理运用这些锁可以帮助我们优化并发性能,防止数据冲突,并确保数据的正确性和一致性。在设计事务和处理并发操作时,应根据业务需求选择合适的锁类型,...

    oracle数据库常用操作语句

    oracle数据库常用操作语句,实现对用户的管理和权限管理。

    数据库备份的语句

    这是数据库的备份和还原的sql语句,只适用于oracle数据库。

    Oracle数据库语句大全.doc

    Oracle 数据库语句大全还包括创建表空间、删除表空间、查询表空间基本信息、创建用户、更改用户、锁定用户、删除用户等语句。 二.数据操纵语言(DML) 数据操纵语言(DML)用于操作数据库中的数据,包括插入、...

    oracle利用批处理文件执行SQL语句,bat连接oracle数据库并执行语句

    在这个场景中,我们可以利用批处理文件来简化Oracle数据库的操作,如删除用户、创建用户、创建表和触发器,以及执行其他SQL语句。 首先,我们需要了解如何在批处理文件中连接Oracle数据库。这通常通过Oracle的...

    oracle还原数据库基础语句

    oracle还原数据库基础语句 创建表空间,创建用户,还原语句

    Oracle数据库SQL语句大全

    Oracle数据库SQL语句大全

    ORACLE数据库锁表问题浅析.pdf

    ORACLE数据库锁表问题浅析 Oracle数据库锁机制是企业级数据库管理系统中一个非常重要的机制。锁机制的主要目的是为了保证数据的一致性和正确性,在多用户同时访问数据库时,避免数据的不一致和错误。Oracle数据库锁...

    Oracle数据库sql语句的基本操作详解

    Oracle数据库的SQL语句是数据库管理员和开发人员日常工作中不可或缺的一部分。本文将深入解析Oracle SQL语句的基本操作,帮助初学者更好地理解和应用这些技巧,从而提高数据库查询效率。 首先,理解选择最有效率的...

    oracle数据库执行查询语句

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级应用中扮演着核心角色。...总之,掌握Oracle数据库执行查询语句的相关知识和使用OraTracer工具,对于提升数据库的稳定性和效率具有重要意义。

    通过.bat文件连接oracle 插入数据库记录

    总的来说,这个主题涉及的知识点包括:Windows批处理脚本、Oracle数据库连接、SQL语句(特别是INSERT语句)、数据库连接字符串的构建以及可能的错误处理和调试技巧。对于想要自动化数据库操作的IT从业者,这些都是...

    Oracle数据库Sql语句详解大全

    写一条SELECT查询语句 在查询中使用表达式、运算符 对空值的处理 对查询字段起别名 查询字段的连接 第二章 条件查询 WHERE条件查询 在查询中使用表达式、运算符 使用LIKE、BETWEEN、IN进行模糊查询 第三章 单行...

    [自己开发]一款非常好用的抓取Oracle数据库SQL语句的工具

    Oracle SQL Profiler,自己设计算法写的一款非常好用的抓取Oracle数据库SQL语句的工具,可以再没有源码的情况下监控ORACLE数据库服务器的v$sqlarea视图抓取出从点击开始按钮到点击结束按钮期间执行过的SQL语句。...

    Oracle中用sql语句创建数据库

    Oracle中用sql语句创建数据库,比较长,一般做了解

    oracle数据库的一些SQL语句

    ORACLE数据库的一些SQL语句 数据操纵语言DML M = Manipulation  数据操纵语言DML用于改变数据库数据 主要有三种形式:  1) 插入:INSERT  2) 更新:UPDATE  3) 删除:DELETE

    Oracle数据库语句精选大全.doc

    Oracle数据库语句精选大全

    ORACLE数据库优化之SQL语句的并行处理.pdf

    SQL语句的并行处理是Oracle数据库优化的重要手段,它能够充分利用多处理器或多核心的硬件优势,大幅度提升查询性能,尤其是在大数据量的环境下。然而,实现并行处理需要考虑数据库的配置、数据的分布特性以及系统的...

Global site tag (gtag.js) - Google Analytics