视窗
loading...
您现在的位置:首页 > IT认证 > oracle认证 >

Oracle开发技术:OracleSkipLocked


Oracle开发技术:OracleSkipLocked

Oracle Skip Locked

  [html]

  Oracle Skip Locked

  Oracle 11g引入skip locked。

  Skip Locked 是在query select语句中跳过已经被其他正在执行的query select语句锁住的行,只执行能够获得锁的行。

  select for update如何查询大数量,那么其他session同时执行的select语句可能会等待锁超时而报下面这个错

  ORA-30006: resource busy; acquire with WAIT timeout expired

  如果是不超时的case,那么会出现

  ORA-00054 resource busy and NOWAIT specified

  比如session1执行下面语句:

  SELECT *

  FROM dept WHERE

  deptno = 10

  FOR UPDATE NOWAIT;

  输出:

  DEPTNO DNAME LOC

  ---------- -------------- -------------

  10 ACCOUNTING NEW YORK

  session2执行下面语句:

  SELECT * FROM dept

  WHERE deptno IN (10,20)

  FOR UPDATE NOWAIT;

  那么输出:

  SELECT * FROM dept WHERE deptno IN (10,20)

  FOR UPDATE NOWAIT

  ERROR at line 1:

  ORA-00054: resource busy and acquire with NOWAIT specified

  因为session1已经锁住10这一行,session2请求获得不到10这一行的锁,就报错了。

  那么在session2我们可以使用skip locked

  SELECT * FROM dept

  WHERE deptno IN (10,20)

  FOR UPDATE SKIP LOCKED;

  此时输出:

  DEPTNO DNAME LOC

  ---------- -------------- -------------

  20 RESEARCH DALLAS

  SKIP LOCKED会跳过被锁住的行,只查询没有锁住的行。

閵嗏偓

閵嗏偓

閵嗘劕鍘ょ拹锝咃紣閺勫骸鎷伴悧鍫熸綀鐠囧瓨妲戦妴锟�
閺堫剛鐝柈銊ュ瀻娣団剝浼呴弶銉︾爱娴滃簼绨伴懕鏃傜秹閿涳拷鐎电娴嗘潪鐣屾畱娣団剝浼呴幋鎴滄粦閸旀稒鐪伴弽鍥ㄦ娣団剝浼呴惃鍕毉婢跺嫸绱�閹存垳婊戠亸濠囧櫢娴f粏鈧懐娈戦悧鍫熸綀閽佹ぞ缍旈弶鍐跨礉鐎佃鍨滄禒顒冩祮鏉炵晫娈戞穱鈩冧紖婵″倹婀佸鍌濐唴閹存牗婀佹笟鍨綀閹存牞绻氬▔鏇氫繆閹垵顕崣濠冩閼辨梻閮撮幋鎴滄粦閿涘本婀扮粩娆庣窗缁斿宓嗛崚鐘绘珟閿涳拷鐎电懓甯崚娑樺敶鐎硅鍨滄禒顒佸姽閹板繑鏁禒姗€鈧倸缍嬮惃鍕归柊顒婄礉閼辨梻閮撮弬鐟扮础閿涙岸鍋栨禒锟�:webmaster@jscj.com閵嗏偓閻絻鐦介敍锟�4008816886

相关文章

无相关信息
更新时间2022-03-13 11:18:58【至顶部↑】
联系我们 | 邮件: webmaster@jscj.com | 客服热线电话:4008816886(QQ同号) |  濠电儑缍€椤曆勬叏閻愮鍋撻獮鍨仾婵犫偓閸パ屽殫妞ゆ棁顔婄换锟�

付款方式留言簿投诉中心网站纠错二维码手机版

客服电话:4008816886