oracle怎么deadlock,Oracle Deadlock
死锁通常发生在主表和子表更新主外键上。更新主表的主键,那么子表的外键会被锁住
如果删除主表的行,那么子表会被锁住。
SQL> create table p(x int primary key);
Table created.
SQL> create table c( x references p);
Table created.
SQL> insert into p values(1);
1 row created.
SQL> insert into p values (2);
1 row created.
SQL> commit;
Commit complete.
在一个seesion下执行
SQL> insert into c values(2);
1 row created.
换一个session执行
SQL> delete from p where x = 1;
会发现hang住了。
SQL> column columns format a30word_wrapped
SQL> column columns format a15word_wrapped
SQL> column constraint_name format a15word_wrapped
SQL>
SQL> select table_name, constraint_name,
2 cname1 ||nvl2(cname2,','||cname2,null) ||
3 nvl2(cname3,','||cname3,null) || nvl2(cname4,','||cname4,null) ||
4 nvl2(cname5,','||cname5,null) || nvl2(cname6,','||cname6,null) ||
5 nvl2(cname7,','|| cname7,null)|| nvl2(cname8,','||cname8,null)
6 columns
7 from ( select b.table_name,
8 b.constraint_name,
9 max(decode(position,1,column_name,null)) cname1,
10 max(decode(position,2,column_name,null)) cname2,
11 max(decode(position,3,column_name,null)) cname3,
12 max(decode(position,4,column_name,null)) cname4,
13 max(decode(position,5,column_name,null)) cname5,
14 max(decode(position,6,column_name,null)) cname6,
15 max(decode(position,7,column_name,null)) cname7,
16 max(decode(position,8,column_name,null)) cname8,
17 count(*) col_cnt
18 from ( select substr(table_name,1,30) table_name,
19 substr(constraint_name,1,30)constraint_name,
20 substr(column_name,1,30)column_name,
21 position
22 from user_cons_columns ) a,
23 user_constraints b
24 where a.constraint_name = b.constraint_name
25 and b.constraint_type ='R'
26 group by b.table_name,b.constraint_name
27 ) cons
28 where col_cnt > ALL
29 (select count(*)
30 from user_ind_columns i
31 where i.table_name = cons.table_name
32 and i.column_name in (cname1,cname2,cname3,cname4,
33 cname5,cname6,cname7,cname8)
34 and i.column_position <= cons.col_cnt
35 group by i.index_name
36 )
37 /
TABLE_NAME CONSTRAINT_NAME COLUMNS
--------------------------------------------- ---------------
C SYS_C007722 X
发现C上没有索引,这个问题可以通过创建索引来解决
SQL> create index idx_c on c(x);
Index created.
SQL> insert into c values(2);
1 row created
换个session2执行
SQL> delete from p where x = 1;
1 row deleted.
可以 看到不再hang住了。
oracle怎么deadlock,Oracle Deadlock相关推荐
- oracle死锁模拟,Oracle死锁的模拟和处理
一,什么是死锁 A deadlock is a situation in which two or more users are waiting for data locked by each oth ...
- Deadlock 和 Deadlock Prevention
一.Thread Deadlock A deadlock is when two or more threads are blocked waiting to obtain locks that so ...
- Oracle Study之--Oracle等待事件(3)
Oracle Study之--Oracle等待事件(3) Db file parallel read 这是一个很容易引起误导的等待事件,实际上这个等待事件和并行操作(比如并行查询,并行DML)没有关系 ...
- oracle技术之Oracle 跟踪事件(一)
一.Oracle跟踪文件 Oracle跟踪文件分为三种类型,一种是后台报警日志文件,记录数据库在启动.关闭和运行期间后台进程的活动情况,如表空间创建.回滚段创建.某些alter命令.日志切换.错误消息 ...
- 使用Oracle instantClient代替Oracle Client安装
使用Oracle instantClient代替Oracle Client安装 目录 使用Oracle instantClient代替Oracle Client安装 #Oracle instantCl ...
- cmd删除oracle监听,oracle数据库监听删除
oracle 10G for linux常用命令 oracle 10G for linux常用命令 首先以Oracle用户登录 1. $/oracle/oracle/app/product/101/b ...
- lua 访问oracle,lua链接oracle解决方法与步骤
测试环境centos7 1) 使用luajit ,这个比较简单,下载luajit源码,编译即可 省略 以下是具体操作步骤: 参考文章:http://www.programgo.com/article/ ...
- oracle顺序读等待,Oracle Study之--Oracle等待事件(4)
Oracle Study之--Oracle等待事件(4) Db file scattered read这个等待事件在实际生产库中经常可以看到,这是一个用户操作引起的等待事件,当用户发出每次I/O需要读 ...
- Oracle: 三、Oracle的隐藏事务与视图的创建
内容简介 1,Oracle的隐藏事务.2,视图(View)的创建. 技术与环境 操作系统: windows 语言类别: SQL之PL/SQL thankyou: sunshine, 谢谢你的默默付出 ...
- oracle insert汉字出错,Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名...
本文主要向大家介绍了Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle数据库,用 ...
最新文章
- Tomcat 之 tomcat安装和组件介绍
- oraclexe支持商用吗_商用车线控制动系统项目 技术研发
- 兄弟||弟兄,以前看过一个“母亲”,现在是“弟兄”,感人!
- Codeforces Round #520 (Div. 2)
- Android应用中使用AsyncHttpClient来异步网络数据
- 前端三十一:标签的属性
- Git 技术篇 - Github在项目分支里下载某个文件方法,Github项目里的单个js文件下载实例演示
- [原]TCP/UDP使用细节备忘
- [js] ReferenceError和TypeError有什么区别?
- 吴钩:打开宋代的“隐藏玩法”
- vue获取编辑器纯文字_前端富文本编辑器 vue-html5-editor
- Spring Boot(3)---Spring Boot启动器Starter详解
- Django form模块使用心得
- Android平台下渗透测试工具大集合
- HDOJ(航电)题目分类大全
- 524MB的微信输入法:没广告 你会用吗
- GoLang panic 用法
- MATLAB绘制图中图
- IgA | 对抗病原菌,帮助共生菌定植的“重要开关”
- Nginx系列教材 (五)- 和Tomcat进行负载均衡
热门文章
- 浅析LUM及相关实验
- 案例解析 | 广东自由流收费稽核方案,AI稽核新模式
- Java 寻找指定文件夹里特定字符串
- C# 学习日记-调用Bartender的库进行标签自动打印
- web漏洞-淡然qqyw图标点亮系统源码审计-sql注入篇
- navicat持续试用
- Session会在关闭浏览器的时候自动清空吗?
- Intent.createChooser方法在HTC OneX上意外会引发onConfigurationChanged方法
- java calendar日期计算_JAVA中用CALENDAR类计算周和周的起始日期(转)
- 修改TrustedInstaller权限文件