`

lock 1

阅读更多
step 1: create table
create table czk_locktest
(
id int not null primary key,
modulename varchar(50),
moduleDescript varchar(200),
moduleid varchar(50),
createtime date
)
select * from czk_locktest;

insert into czk_locktest values(1,'lockname1','lockdes2','moduleid1',sysdate)
step2 :现在我们来实践一个在更新的时候,锁表的情况

打开一个SQL windows :
  update czk_locktest set modulename='sanli'

另外打开一个sql windows
  select * from czk_locktest for update   //死锁等待
  select * from czk_locktest

你在事务中修改的每一行或SELECT FOR UPDATE都将“指向”该事务相关的一个TX锁。要理解为什么

select * from v$lock;


13 1D9C4074 1D9C408C 147 TM 52547 0 3 0 3 0
14 1DA008C4 1DA009E0 147 TX 196636 303 6 0 3 0
其实 select * from v$lock where block=1
     说明那个操作会话被阻止

step 3:如何知道整个数据库中哪些表被锁定了?


Select gob.*,gp.spid From gv$locked_object gob ,gv$session gs,gv$process gp
Where gob.session_id=gs.sid And gs.paddr=gp.addr And gob.inst_id=gs.inst_id And gob.inst_id=gp.inst_id;


step 4:哪个用户在锁表
select a.username, a.sid, a.serial#, b.id1
from v$session a, v$lock b
where a.lockwait = b.kaddr


事务锁,但没有造成其它会话的阻塞

Select Null "2.被锁对象:" From dual;
Select gob.*,gp.spid From gv$locked_object gob ,gv$session gs,gv$process gp
Where gob.session_id=gs.sid And gs.paddr=gp.addr And gob.inst_id=gs.inst_id And gob.inst_id=gp.inst_id;

Select Null "3.锁等待关系:" From dual;
select a.sid holdsid,b.sid waitsid,a.type,a.id1,a.id2,a.ctime from gv$lock a,gv$lock b
where a.id1=b.id1 and a.id2=b.id2 and a.Block In (1,2) and b.block=0;



分享到:
评论

相关推荐

    4. 互斥量、lock_guard与unique_lock1

    1. 获取互斥量和释放互斥量必须配对出现,即使在可能出现异常的情况下。这是为了保证在异常发生时,互斥量仍能被正确地释放,防止死锁。 2. 应尽量减少临界区的执行时间,以降低线程阻塞的影响,提高系统效率。 在...

    PoC手册 - 3 增强功能 - Lab 04 Desktop Lock配置.docx

    1. **安装Citrix Desktop Lock**:[链接](http://support.citrix.com/proddocs/topic/receiver-windows-32/nl/zh/cn/ica-xd-install-embedded-stage-one.html?locale=cn) 2. **使用命令行参数配置和安装Receiver for...

    redisson lock和tryLock 分布式锁简单练习

    redisson lock和tryLock 分布式锁简单练习

    lock(this)的使用说明

    1. 检查objectA是否已经被锁定,如果没有则锁定objectA,否则等待直到objectA被释放。 2. 锁定objectA后,在执行codeB期间其他线程不能调用codeB,也不能使用objectA。 3. 执行完codeB之后,释放objectA,并且允许...

    实现yarnlock与packagelockjson相互转换

    1. **生成方式**:`yarn.lock`只由Yarn生成,而`package-lock.json`由npm生成。 2. **格式**:`yarn.lock`的格式更为简洁,易于阅读,而`package-lock.json`则包含更详细的信息,如SHA校验和等。 3. **依赖锁定**:`...

    AHK-CapsLock修改为回车-左手快捷键.ahk

    关键字-回车映射-ahk回车映射-左手回车 ;;快捷键x说明 上下左右 ... CapsLock+q 箭头上--防止误触屏-CapsLock+q也映射为箭头上 ;; CapsLock+e 删除键-删除前面的-Backspace ;; CapsLock+r 删除键-删除后面的--Del

    Capslock++,Capslock键利器

    标题中的"Capslock++"指的是一个利用AutoHotkey脚本技术改造 Capslock 键的工具,旨在提升用户在计算机操作中的工作效率。Capslock键通常用于切换字母大小写,但通过 Capslock++,我们可以将其功能扩展到更高效的...

    JAVA Lock加锁实例

    Lock锁是对象锁,仅在同一对象中,锁才会生效。(不做论证) (以下场景皆为单例模式下运行) lock.lock()的加锁方式,会使后续请求的线程堵塞等待。(方案A) lock.tryLock()的加锁方式,不会堵塞,会立即返回加锁...

    彻底搞清楚library cache lock的成因和解决方法

    - 此时,通过查询 v$session_wait 视图可以发现会话1的等待事件为 "Library cache lock"。 2. **当会话尝试修改 Package/Procedure/Function 时:** - 当会话1尝试修改一个 package、procedure 或 function 的...

    folder-lock6 注册码

    1. **下载并安装**:首先从官方网站或其他可信来源下载 Folder Lock 6 的安装程序,并按照指示完成安装。 2. **启动软件**:打开 Folder Lock 6,如果尚未激活,则会出现提示让用户输入注册信息。 3. **输入注册码**...

    C# Lock实例

    1. **不要锁定公共对象**:锁定公共对象可能导致死锁和其他并发问题。最好为每个需要同步的资源创建一个私有的锁对象。 2. **避免长时间持有锁**:持有锁的时间应尽可能短,以减少其他线程等待的时间,从而提高程序...

    c#线程 lock用法

    `lock`语句是C#中用于实现线程同步的重要工具,主要是为了解决多个线程并发访问共享资源时可能出现的竞争条件(race condition)问题。在描述的场景中,`lock`关键字被用来确保在同一时间只有一个线程可以访问特定的...

    capslock.rar

    1. "Capslock+_v2.7.0.1.exe":这是Capslock+软件的可执行文件,版本号为2.7.0.1,用户可以直接运行来安装和使用软件。 2. "下载说明.txt":可能包含了关于如何下载、安装和使用Capslock+的详细步骤和注意事项。 3. ...

    lockfree c#.net

    1. **无锁算法(Lock-Free Algorithms)**:这种算法的核心是通过原子操作避免锁竞争,通常使用CAS操作,确保在没有锁的情况下也能保持数据一致性。 2. **Atomic Operations**:在C#中,`System.Threading....

    c#lock 演示代码

    在C#编程语言中,`lock`语句是一种同步机制,用于实现线程之间的互斥访问,确保在多线程环境中资源的安全访问。本篇将深入探讨`lock`的使用,以及它在并发编程中的作用。 `lock`关键字是C#中实现线程同步的关键工具...

    .NET LOCK使用方法

    1. 首先,选择一个对象作为锁的对象。任何对象都可以作为锁,但重要的是确保它是共享资源,并且在所有需要访问这个共享资源的线程之间是唯一的。通常,可以选择一个私有的对象或者一个私有的静态对象(如果多个实例...

    Lock的使用.rar

    1. **什么是Lock?** `Lock`是C#中的一种同步原语,通过`System.Threading`命名空间下的`Monitor`类实现。它提供了一种机制,使得同一时间只有一个线程能够执行特定代码块,其他试图进入该代码块的线程将被阻塞,...

    精彩编程与编程技巧-设定CapsLock ScrollLock NumLock...

    ### 知识点:使用API控制CapsLock、ScrollLock、NumLock键状态 #### 一、概述 在软件开发过程中,有时需要通过程序控制键盘上的一些特殊按键的状态,例如CapsLock(大写锁定)、ScrollLock(滚动锁定)以及NumLock...

    判断Caps Lock键是否开/关

    1. **API调用**:操作系统通常提供了API(应用程序接口)供开发者使用,例如在Windows中,可以使用GetKeyState函数来获取特定键的状态。在Python中,我们可以使用pynput库来监听键盘事件并获取Caps Lock的状态。 2....

Global site tag (gtag.js) - Google Analytics