Oracle 唯一主键引发的行锁
SQL> create table test(id int PRIMARY KEY, name char(10));
表已创建。
Session 1:
SQL> select * from v$mystat where rownum<2;
SID STATISTIC# VALUE
---------- ---------- ----------
1165 0 0
SQL> select * from test;
未选定行
SQL> insert into test values(1,'a');
已创建 1 行。
Session 2:
SQL> select * from v$mystat where rownum<2;
SID STATISTIC# VALUE
---------- ---------- ----------
1174 0 0
SQL> insert into test values(1,'a'); --堵塞
SQL> select sid,username,machine, BLOCKING_SESSION ,event from v$session where event='enq: TX - row lock contention';
SID USERNAME MACHINE BLOCKING_SESSION EVENT
---------- ------------------------------ ---------------------------------------------------------------- ---------------- ----------------------------------------------------------------
1174 SYS oadb 1165 enq: TX - row lock contention
1165 堵塞了1174
这是有唯一主键的情况下,
那么没有唯一主键呢?
Sesssion 1:
SQL> create table test2(id int,name char(10));
表已创建。
SQL> insert into test2 values(1,'a');
已创建 1 行。
Session 2:
SQL> insert into test2 values(1,'a');
已创建 1 行。
没有唯一主键,就不会引起行锁
Oracle 唯一主键引发的行锁的更多相关文章
- 【oracle唯一主键SYS_GUID()】
现在给大伙介绍另外的一钟防止主键相同的方法. 唯一主键 使用 SYS_GUID() 生成32位的唯一编码.来生成唯一主键 例如: create table test ( id raw(16) defa ...
- [转帖]详解oracle数据库唯一主键SYS_GUID()
详解oracle数据库唯一主键SYS_GUID() https://www.toutiao.com/i6728736163407856139/ 其实 需要注意 这里满不能截取 因为截取了 就不一定唯一 ...
- oracle中主键自增
oracle中主键自增 下面用一个例子来说明自增主键的创建: 1.建用户数据表 drop table dectuser; create table dectuser( userid integer p ...
- Oracle删除主键约束的同时删除索引
继续昨天的折腾(Oracle修改主键约束),删掉主键约束后,发现唯一索引并未删掉.仔细看了下,主键约束跟唯一索引名称不一样,这说明是先创建了唯一索引,后创建的主键约束.我们来试验下: SQL> ...
- 分布式系统中我们会对一些数据量大的业务进行分拆,分布式系统中唯一主键ID的生成问题
分布式全局唯一ID生成策略 https://www.cnblogs.com/vandusty/p/11462585.html 一.背景 分布式系统中我们会对一些数据量大的业务进行分拆,如:用户表,订 ...
- 根据oracle的主键列生成SQLserver的主键
根据oracle的主键列生成MsSQLServer的主键列 select 'alter table ' || cu.table_name ||' add constraint '||' PK_' ...
- 删除表空间的时候遇到的问题:ORA-02429: 无法删除用于强制唯一/主键的索引
今天打算删除orcale数据库中无用的表空间,发现报错,查资料删除,写个过程留着备用.1.drop tablespace dldata INCLUDING CONTENTS CASCADE CONST ...
- ora-02429:无法删除用于强制唯一/主键的索引
今天打算删除orcale数据库中无用的表空间,发现报错,查资料删除,写个过程留着备用. 1.drop tablespace dldata INCLUDING CONTENTS CASCADE CONS ...
- MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键
MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键 >>>>>>>>>>>>>> ...
随机推荐
- (转)fastcgi协议的简单实现
FastCgi不仅可以用于webserver与PHP的交互,也可用于任何两个应用之间的交互,PHPer用的比较多的应该就是用于两个子系统之间的交互. 比如A系统和B系统分部独立的部署在两台机器上,其之 ...
- bootargs中的环境变量说明和一些常用的uboot命令
bootargs中的环境变量说明和一些常用的uboot命令 一些常见的uboot命令:Help [command]在屏幕上打印命令的说明Boom [addr]启动在内存储器的内核Tftpboot通过t ...
- Gym 100570E : Palindrome Query
De Prezer loves palindrome strings. A string s1s2...sn is palindrome if and only if it is equal to i ...
- REVERSE关键字之REVERSE索引
昨天说到REVERSE关键字可以指REVERSE函数和REVERSE索引,简单介绍了下REVERSE函数的含义,今天简单整理下REVERSE索引. REVERSE索引也是一种B树索引,但它物理上将按照 ...
- if switch练习(体重)
public class shencai { public static void main(String[] args) { int h= 186,g= 80; String Sex = " ...
- js 写table 函数
//创建 table函数 function table(row,col,b,w) { document.write('<table border='+b+'>'); for(var i=0 ...
- WPF窗体属性
以后慢慢加吧! ResizeMode="NoResize" 禁止缩放大小 WindowStyle="ToolWindow" 隐藏最大化与最小化按钮WindowS ...
- 数组,集合 转成DataTable 方法
public static DataTable ToDataTable(IList p_List) { DataTable _DataTable = new DataTable(); if (p_Li ...
- 使用C#创建自定义背景色/形状的菜单栏与工具栏
C#对于菜单栏与工具栏都提供了统一的背景色,形状的渲染类,即ToolStripRenderer类,同时根据不同的情形,提供了多个继承类,分别是ToolStripProfessionalRender,T ...
- MyBatis调用Oracle的存储过程
Mapper.xml文件: --------------------------------- <parameterMap type="map" id="class ...