问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

平时使用oracle时,为什么会锁表

发布网友 发布时间:2022-04-27 00:40

我来回答

2个回答

热心网友 时间:2022-04-07 16:46

数据库事务及隔离级别

隔离级别:脏读、幻读、一致读、不可重复读、更新丢失

1.脏读(Dirty Reads):一个事务开始读取了某行数据但是另外一个事务已经更新了此数据但没有能够及时提交。这是相当危险很可能所有操作都被回滚

2.幻读(Phantom Reads):也称为幻像(幻影)。事务在操作过程中进行两次查询,第二次查询结果包含了第一次查询中未出现的数据(这里并不要求两次查询SQL语句相同)这是因为在两次查询过程中有另外一个事务插入数据造成的

3.不可重复读(Non-repeatable Reads):一个事务对同一行数据重复读取两次但是却得到了不同结果。例如在两次读取中途有另外一个事务对该行数据进行了修改并提交

4.两次更新问题(Second lost updates problem):无法重复读取特例,有两个并发事务同时读取同一行数据然后其中一个对它进行修改提交而另一个也进行了修改提交这就会造成第一次写操作失效

5.更新丢失(Lost update):两个事务都同时更新一行数据但是第二个事务却中途失败退出导致对数据两个修改都失效了这是系统没有执行任何锁操作因此并发事务并没有被隔离开

20、锁是什么?

锁:在所有的DBMS(数据库管理系统)中,锁是实现事务的关键,锁可以保证事务的完整性和并发性。与现实生活中锁一样,它可以使某些数据的拥有者,在某段时间内不能使用某些数据或数据结构。当然锁还分级别的。

锁分为行级锁和表锁。

行级锁:主要是在执行操作过程中,锁定指定的行。

主要的锁行语句有:insert ,update,delete ,及select ....for update。

表锁:指在运行操作指令过程中,由用户指定锁定某张表。lock table XXX in mode share;

共享锁,排他锁,共享排它,行共享,行排他。

锁模式包括?

共享锁:(读取)操作创建的锁。其他用户可以并发读取数据,但任何事物都不能获取数据上的排它锁,直到已释放所有共享锁。

排他锁(X锁):对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。

更新锁:更新 (U) 锁可以防止通常形式的死锁。如果两个事务获得了资源上的共享模式锁,然后试图同时更新数据,则两个事务需都要转换共享锁为排它 (X) 锁,并且每个事务都等待另一个事务释放共享模式锁,因此发生死锁。

若要避免这种潜 在的死锁问题,请使用更新 (U) 锁。一次只有一个事务可以获得资源的更新 (U) 锁。如果事务修改资源,则更新 (U) 锁转换为排它 (X) 锁。否则,锁转换为共享锁。

锁的粒度主要有以下几种类型:

行锁: 粒度最小,并发性最高

页锁:一次锁定一页。25个行锁可升级为一个页锁。

表锁:粒度大,并发性低

数据库锁:控制整个数据库操作

乐观锁:乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做。一般的实现乐观锁的方式就是记录数据版本。

悲观锁:每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁,读锁,写锁等,都是在做操作之前先上锁。

20、数据库的乐观锁和悲观锁是什么? oracle 是行级锁

数据库管理系统(DBMS)中,并发控制的任务是:确保在多个事务同时存取同一数据时,不破坏事务的隔离性和统一性以及数据库的统一性。

悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作

乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。

21、悲观锁和乐观锁的区别,怎么实现

悲观锁:一段执行逻辑加上悲观锁,不同线程同时执行时,只能有一个线程执行,其他的线程在入口处等待,直到锁被释放。

乐观锁:一段执行逻辑加上乐观锁,不同线程同时执行时,可以同时进入执行,在最后更新数据的时候要检查这些数据是否被其他线程修改了(版本和执行初是否相同),没有修改则进行更新,否则放弃本次操作。

热心网友 时间:2022-04-07 18:04

简单地说,锁是为了保证数据的一致性,锁不止存在于oracle,其他数据库一样有,只不过机制上可能大相径庭。

至于什么样的操作会锁表,其实锁的种类很多,你所说的锁表大概说的是行级锁——也就是事务锁吧。比如一个update语句,被update的行上会有锁——能阻塞其他事务对这些行进行修改的锁,虽然这时候这张表上也有表级锁,但这个表级锁并不影响其他事务对表中的其他行进行修改,只是会阻碍对这张表的DDL操作。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
折儿是什么意思? 什么叫饭折? 饭折是什么意思 私募股权基金6种模式 私募投资业务管理系统 火山仙泉天然矿泉水产品特点 用苏打片带吃带洗真的能生男孩吗 凡山天然苏打水怎么样 美的面包机和面要多久 美的面包机和面的时间要多长 美的面包机怎么用手动操作 oracle 数据库 为什么锁表 oracle数据库的锁机制,与锁问题的处理? oracle锁 Oracle中的共享锁和行共享锁有什么区别啊? iphone怎么传视频到电脑上 oracle 锁定机制是什么? 海量数据库解决方案的作者简介 tcl电视l32f2350b怎么投屏当地视频 TCL电视V8−MS88101−LF1V066+怎么投屏 白糖期货是什么意思?我想做白糖期货,对这个不太懂,哪位可以帮我解释下,谢谢好心人了。 目前白糖期货主力合约是哪个 怎么查看对方微信是否是本人微信 白糖期货合作需要什么条件 请问目前白糖期货主力合约是哪个?什么时候会换月? 淘宝关注店铺消失了 自己的淘宝店分享会到哪里显示? 白糖期货合约的交割品是什么? 用手机如何把我的淘宝店铺分享给朋友 白糖期货合约一手多少吨 淘宝的帐单可以删除吗 怎么在电脑上看iphone的文件 关于Oracle数据库锁的问题,表锁,行锁,共享和排他的问题,跪求大神解答... oracle中的页锁是什么 小狗和妈妈一起怎么画? oracle锁表问题 oracle数据库访问中要控制加锁怎样实现 关于oracle锁,buffer,session机制的一个问题 oracle 行级锁和数据块的关系? 小狗的简笔画的图案有哪些 Oracle数据库中为什么一到月初执行过程就会锁表 简单又漂亮小狗怎么画,可爱的小狗简笔画教程 我和我的家人,妈妈,哥哥,奶奶,爸爸,我还有小狗,怎么画? 怎样画一只简笔画的小狗 狗妈妈带三个狗宝宝的看图写话 谁能帮我画一张图 有爸爸 妈妈 儿子和一只狗狗的, 漫画 简笔 水彩 电脑绘画 涂鸦都可以 感谢了!! 白细胞脂酶阴性什么意思 狗宝宝和狗妈妈可以在一起养吗? 白细胞酯酶阴性是什么意思 我家的狗妈妈为什么咬狗宝宝 我白细胞脂酶测定阴性++是什么意思