Oracle中快速查找锁与锁等待
数据库的锁是比较耗费资源的,特别是发生锁等待的时候,我们必须找到发生等待的锁,有可能的话,杀掉该进程。
可以通过alter system kill session‘sid,serial#’ 或者alter system disconnect session'sid,serial#' immediate; 来杀掉会话
下面语句将查找到数据库中所有的DML语句产生的锁,还可以发现任何DML语句其实产生了两个锁,一个是表锁,一个是行锁。
SELECT /*+ rule */s.username,
decode(l.type,'TM','TABLELOCK','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$lockl,dba_objects o
WHERE l.sid = s.sid
AND l.id1 = o.object_id(+)
AND s.username is NOT NULL
如果发生了锁等待,我们可能更想知道是谁锁了表而引起谁的等待,以下的语句可以查询到谁锁了表,而谁在等待。
SELECT /*+ rule */ lpad(' ',decode(l.xidusn,0,3,0))||l.oracle_username User_name,
o.owner,o.object_name,o.object_type,s.sid,s.serial#
FROM v$locked_objectl,dba_objects o,v$session s
WHERE l.object_id=o.object_id
AND l.session_id=s.sid
ORDER BY o.object_id,xidusnDESC
以上查询结果是一个树状结构,如果有子节点,则表示有等待发生。如果想知道锁用了哪个回滚段,还可以关联到V$rollname,其中xidusn就是回滚段的USN
[Q] 如何有效的删除一个大表(extent数很多的表)
[A] 一个有很多(100k)extent的表,如果只是简单地用drop table的话,会很大量消耗CPU(Oracle要对fet$、uet$数据字典进行操作),可能会用上几天的时间,较好的方法是分多次删除extent,以减轻这种消耗:
1. truncate table big-table reuse storage;
2. alter table big-tabledeallocate unused keep 2000m ( 原来大小的n-1/n);
3. alter table big-tabledeallocate unused keep 1500m ;
....
4. drop table big-table;
Oracle中快速查找锁与锁等待相关推荐
- php对pdf关键字定位,如何在PDF文件中快速查找关键字
有时候我们在阅读和编辑PDF文章时需要对PDF文件里的重要关键词进行查找,但如果PDF文章内容过长,怎么才能快速查找出想要查找的关键字? 想要在PDF文件中快速查找出关键字,那么利用迅捷PDF编辑器进 ...
- Oracle中如何查找未使用绑定变量的SQL语句?
Oracle中如何查找未使用绑定变量的SQL语句? 利用V$SQL 视图的 FORCE_MATCHING_SIGNATURE 字段可以识别可能从绑定变量或 CURSOR_SHARING 获益的 SQL ...
- Cadence OrCAD原理图中快速查找元件的方法
Cadence OrCAD原理图中快速查找元件和网络方法 本章节将教大家如何在OrCAD原理图中根据元件位号快速查找元件的两个方法. 方法一:在.obj页面的"File"标签下查找 ...
- ora-00031:session marked for kill处理oracle中杀不掉的锁
转: 一些ORACLE中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库.现在提供一种方法解决这种问题,那就是在ORACLE ...
- 【转】ora-00031:session marked for kill处理oracle中杀不掉的锁
一些ORACLE中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库.现在提供一种方法解决这种问题,那就是在ORACLE中杀不 ...
- ORA-00031: session marked for kill 处理Oracle中杀不掉的锁
转自:http://bbs.erp100.com/thread-5934-1-1.html marked 一些ORACLE 中的进程被杀掉后,状态被置为"killed",但是锁定的 ...
- 索引:如何在海量数据中快速查找某个数据?
------ 本文是学习算法的笔记,<数据结构与算法之美>,极客时间的课程 ------ 前面讲过MySQL数据库索引实现原理,底层是依赖B+树这种数据结构来实现的.那类似Redisp 这 ...
- 【索引】:如何在海量数据中快速查找某个数据?
亲测可用,若有疑问请私信 在[B+树]:MySQL数据库索引是如何实现的?中,我们讲了MySQL数据库索引的实现原理.MySQL底层依赖的是B+树这种数据结构.那类似Redis这样的Key-Value ...
- 如何在 Windows 中快速查找文档
近几年,随着硬盘介质价格的大幅度下降,各位电脑迷们的个人硬盘容量越来越大,动辄五六十G,甚至上百G都不足为奇,这在前几年是无法想象的.但是硬盘大了,存放的文档多了,查找速度慢的烦恼也随之来了.其实在W ...
最新文章
- dom刷新局部元素_JavaScript中DOM和BOM基础
- html动态加载js方法,如何通过JavaScript动态加载js
- hdu 1198 Farm Irrigation
- oracle导入视图报错,exp/imp 报错处理(EXP-00003 / IMP-00019 / IMP-00058)
- Centos7内核版安装nginx环境问题及解决方法
- vue aplayer 进度条无法拖动_「最近项目小结」使用Vue实现一个简单的鼠标拖拽滚动效果插件...
- 【转】郭敬明作品中100句经典的话
- shell---字体颜色
- java基数排序_Java实现基数排序
- KL散度、JS散度、Wasserstein距离
- max3490esa_max3490中文资料
- 数据库系统原理与应用教程(006)—— 编译安装 MySQL5.7(Linux 环境)
- 人工智能培训学校学哪些内容
- ugui 转轮_unity3D的FingerGestures小工具
- 怎样批评同事不会错!
- 如何在Office 365中使用Office剪贴板?
- ImageMagick将多张图片拼接成一张图片_爱剪辑如何把图片制作成视频
- 怎么做好网络营销推广引流客户?
- matlab如何求变换矩阵,如何用Matlab实现机器人的变换矩阵
- linux之小技巧netstat