Oracle锁表(转载)
行级锁
表级锁
行级锁
---- 行被排他锁定
----在某行的锁被释放之前,其他用户不能修改此行
----使用 commit 或 rollback 命令释放锁
----Oracle 通过使用 INSERT、UPDATE 和 SELECT…FOR UPDATE 语句自动获取行级锁
―在表的一行或多行上放置排他锁
―用于防止其他用户更新该行
―可以执行除更新之外的其他操作
―for update of gname;
―只有该用户提交事务,其他用户才能够更新gname
―Oracle9i 中的新增功能
―防止无限期地等待锁定的行
―等待间隔必须指定为数值文字
―等待间隔不能是表达式、赋值变量或 PL/SQL
变量
―select * from goods where gid=1001 for update of gname wait 3
―等待用户释放更新锁的时间为3秒,否则超时。
―保护表的数据
―在多个用户同时访问数据时确保数据的完整性
―可以设置为三种模式:共享、共享更新和 排他
语法:lock table<table_name>in<mode>;
共享锁
―锁定表
―仅允许其他用户执行查询操作
―不能插入、更新和删除
―多个用户可以同时在同一表中放置此锁
―lock table table_name
―in share mode [nowait];
― rollback 和commit 命令释放锁
― nowait 关键字告诉其他用户不用等待
―锁定要被更新的行
―允许其他用户同时查询、插入、更新未被锁定的行
―在 SELECT 语句中使用“FOR UPDATE”子句,可以强制使用共享更新锁
―允许多个用户同时锁定表的不同行
1 lock table tab_name in share update mode;
2 select column1,column2
from goods
where goods
where gid=1001
for update of column1,column2
―仅允许其他用户查询数据
―不允许执行插入、删除和更新操作
―在同一时间仅允许一位用户在表上放置排他锁
―共享锁与此相反
lock table<表名>[<表名>]...
in share mode [nowait]
lock table< 表名>[<表名>]...
in exclusive mode [nowait]
in share update mode[nowait]
Oracle锁表(转载)的更多相关文章
- oracle锁表问题解决方法
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp52 Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程 ...
- oracle锁表
一.锁表的处理 Oracle锁表比较简单,查询锁表的session杀掉就可以了. 1.以下几个为相关表 SELECT * FROM V$LOCK; SELECT * FROM V$SQLAREA; S ...
- Oracle锁表查询和解锁方法
数据库操作语句的分类 DDL:数据库模式定义语言,关键字:create DML:数据操纵语言,关键字:Insert.delete.update DCL:数据库控制语言 ,关键字:grant.remov ...
- oracle锁表查询
ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态,可能是该表被某一用户锁定,导致其他用户无法继续操作 复制代码代码如下: --锁表查 ...
- oracle 锁表问题
oracle执行表数据更新的时候,会遇到锁表问题,比方说,会遇到这样的问题,主要原因是这张表被其他人占用,修改数据没有提交.oracle为了避免脏数据的产生,在其安全机制下,锁住该表. 执行如下操作, ...
- 查询Oracle锁表和解决方法
Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?本文我们主要就介绍一下这部分内容.(1)锁表查询的代码有以下的形式:select count( ...
- Oracle锁表与解锁
查看锁表语句:方法1: select sess.sid, sess.serial#, lo.oracle_username, lo.o ...
- oracle 锁表的处理。
最近系统每天经常锁表,进程杀死后,很快再次锁住这个表. (一)先贴出现场处理死锁的步骤. 另外:有时候通过PL/SQL执行kill session可能仍然无法解锁,此时需要登陆到Oracle服务器将进 ...
- oracle锁表查询,资源占用,连接会话,低效SQL等性能检查
查询oracle用户名,机器名,锁表对象 select l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, l.os_user ...
随机推荐
- My SQL InnoDB 1217 - Cannot delete or update a parent row:aforeign key constraint fals
InnoDB 允许有外键 MyISAM 不允许有外键 InnoDB修改成MyISAM 证明有外键 一张表如果有其他表的外键关联的是它 它也不能是MyISAM 来自为知笔记(Wiz)
- C#之你懂得的序列化/反序列化
前言:写此文章一方面是为了巩固对序列化的认识,另一方面是因为本人最近在面试,面试中被问到“为什么要序列化”.虽然一直在使用,自己也反复的提到序列化,可至于说为什么要序列化,还真的没想过,所以本文就这样 ...
- ARP:地址解析协议
ARP是地址解析协议,简单语言解释一下工作原理.1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系.2:当源主机要发送数据时,首先检查ARP列表中 ...
- Action的执行
异步Action的定义 两种异步Action方法的定义 xxxAsync/xxxCompleted 这种形式的异步只能定义在实现了AsyncController的Controller中.针对Task的 ...
- Android init.rc解析【转】
转自:http://www.linuxidc.com/Linux/2014-10/108438.htm 本文主要来自$Android_SOURCE/system/init/readme.txt的翻译. ...
- GitHub的使用(上)—— 创建和更新
推荐一个属于自己的代码控制工具(或者是叫代码托管工具)——GitHub. 提起代码控制工具,很容易想到的就是CVS,SVN.这也是开发团队常用的.但如果想管理只属于自己的代码呢?那它们就不太合适了—— ...
- leetcode:Search for a Range(数组,二分查找)
Given a sorted array of integers, find the starting and ending position of a given target value. You ...
- C++关键字 inline
在C&C++中 一.inline关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义. 表达式形式的宏定义一例: #define ExpressionName(Va ...
- 《OD学HBase》20160820
一.案例 微博: 微博内容: 关注用户和粉丝用户: 添加或移除关注用户 查看关注用户的微博内容 微博数据存储: 响应时间 秒级 无延迟 (1)mysql分布式 (2)hbase数据库 使用HBase数 ...
- JS获取系统的指定定年月日
/** * 获取系统当前时间 */ function getNowYearMouth(){ var date=new Date; var nowYearMouth=date.getMonth()+1; ...