oracle如何防止锁表,Oracle-怎么防止oracle锁表[通俗易懂]

oracle如何防止锁表,Oracle-怎么防止oracle锁表[通俗易懂]只有插入有主键约束的列,或者有唯一约束的列时才可能会阻塞。示例:createtablet(xintprimarykey);session1:insertintotvalues(1);session2:insertintotvalues(1);这时session2就会发生阻塞。解决这种情况最好的方法就是在列上绑定一个序列,如果没有这么做,你也可以创建一个before触发器…

大家好,又见面了,我是你们的朋友全栈君。

只有插入有主键约束的列,或者有唯一约束的列时才可能会阻塞。

示例:create table t(x int primary key);

session 1:

insert into t values(1);

session 2:

insert into t values(1);

这时session 2就会发生阻塞。

解决这种情况最好的方法就是在列上绑定一个序列,如果没有这么做,你也可以创建一个before触发器在插入前捕获resource_busy异常来防止阻塞:

create or replace trigger t_trigger

before insert on t for each row

declare

p_lockid pls_integer;

p_resource_busy exception;

pragma exception_init(p_resource_busy,-54);

begin

p_lockid:=dbms_utility.get_hash_value(to_char(:new.x),1,22554);

if(dbms_lock.request(id=>p_lockid,timeout=>0,lockmode=>dbms_lock.x_mode,release_on_commit=>true)<>0)

then

raise p_resource_busy;

end if;

end;

异常处理开销是很大的,所以最好的解决方法还是用序列来处理。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150607.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 我的世界怎么显示坐标_我的世界永久显示坐标

    我的世界怎么显示坐标_我的世界永久显示坐标在我的世界游戏中,坐标这个问题如果玩的很6的话能够帮助我们瞬间移动,去到任何想去的地方,这时有不少玩家不禁想问了,我的世界坐标怎么看,坐标指令又是什么呢?坐标(coordinates)在数字上反映了您在主世界中的位置。坐标基于一个由三条交于一点(即原点)的坐标轴而形成的网格。玩家会出生在距离原点数百方块的位置上。x轴反映了玩家距离原点在东()西(-)方向上的距离,如经度。z轴反映了玩家距离原点在…

  • 按位取反计算_c语言按位异或运算符

    按位取反计算_c语言按位异或运算符今天我在看简明Python指南的时候,看到其中一个计算机计算的问题,它是这样描述的:x的按位取反结果为-(x+1)~5输出-6。有关本例的更多细节可以参阅:http://stackoverflow.com/a/11810203看到这儿我就疑惑了,之前在大学中学习的计算机基础课程又还给教材了,hhh…无奈,我只好取网上搜寻解析的答案,而网上的解释说得不太让人明白,自己结合他人的解

  • 【转载】lvs为何不能完全替代DNS轮询

    【转载】lvs为何不能完全替代DNS轮询

    2021年11月20日
  • CentOS7 安装 Python 3.9.0[通俗易懂]

    CentOS7 安装 Python 3.9.0[通俗易懂]文章目录1.安装编译相关工具2.创建Python文件夹下载安装包3.编译安装4.创建软连接5.验证1.安装编译相关工具安装开发库yum-ygroupinstall”Developmenttools”安装依赖环境yum-yinstallzlibzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devel

  • 什么是拉链表_女表拉链的

    什么是拉链表_女表拉链的原文地址:https://blog.csdn.net/xiepeifeng/article/details/42431027在数据仓库的数据模型设计过程中,经常会遇到这样的需求:1.数据量比较大;2.表中的部分字段会被update,如用户的地址,产品的描述信息,订单的状态等等;3.需要查看某一个时间点或者时间段的历史快照信息,比如,查看某一个订单在历史某一个时间点的状态,  比如,查看某一…

    2022年10月16日
  • vc 调用dll_调用API

    vc 调用dll_调用APIGoogle公司已经将GoogleCOMAPI开放,这样我们就可以通过开放的API来对GoogleEarth进行操作了,比如控制当前视图的高度、中心经纬度,保存当前图片等等。下面是GoogleCOMAPI的网址:http://earth.google.com/comapi/那么,VC程序员如何使用这些API来控制GoogleEarth呢?下面我们编写一个简单的程序来说明对G

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号